Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2011, 20:17   #1
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию Конструктор шаблонного класса

variable.h
Код:
template <class type_of_variable> class HPL_variable
{
private:
    type_of_variable *variable;

    string name_of_variable;

public:
   HPL_variable();
    ~HPL_variable();

    int set_name_of_var(const char *name);
    int set_name_of_var(const string &name);

};

variable.cpp

Код:
template <class type_of_variable>          //ошибка где-то в этом конструкторе
HPL_variable<type_of_variable>::HPL_variable() // и деструкторе
{

}

template <class type_of_variable>
HPL_variable<type_of_variable>::~HPL_variable()
{

}


template <class type_of_variable>
int HPL_variable<type_of_variable>::set_name_of_var(const char *name)
{
    name_of_variable = name;
    return 0;
}
template <class type_of_variable>
int HPL_variable<type_of_variable>::set_name_of_var(const string &name)
{
    name_of_variable = name;
   return 0;
}
Код:
int main(int argv ,char *argc[])
{
     //.......
     HPL_variable<int> var; 
     //.........
}
вроде бы все правильно ,но
GCC выдает ошибку

Цитата:
|19|undefined reference to `HPL_variable<int>::HPL_variable()' |
|20|undefined reference to `HPL_variable<int>::~HPL_variable() '|
||=== Build finished: 2 errors, 0 warnings ===|

в чем может быть дело ?
Hemul вне форума Ответить с цитированием
Старый 01.07.2011, 20:21   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

шаблонные методы должны быть реализованы в том же файле что и объявлены.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конструктор наследника абстрактного класса tiger() Visual C++ 5 15.05.2011 07:16
Конструктор класса наследующего от TFileStream YuryGunko Общие вопросы C/C++ 2 03.06.2010 22:02
Конструктор класса наследующего от TFileStream (BC++) YuryGunko Помощь студентам 0 03.06.2010 20:38
Конструктор класса XPAiN Общие вопросы Delphi 2 24.01.2010 15:00
С++ перегрузка операций для шаблонного класса TIN Помощь студентам 7 29.03.2009 15:24