crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> template, linux, qt, Особенность использования шаблонов
fantom
  опции профиля:
сообщение 5.2.2009, 19:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 47
Регистрация: 29.1.2009
Пользователь №: 515

Спасибо сказали: 1 раз(а)




Репутация:   1  


Пишу простенький пример
test.h
template<typename T>
class Test{
public:
Test();
};


test.cpp

#include "test.h"
template <typename T>
Test<T>::Test()
{

}

main.cpp
int main(int argc, char *argv[]){
QApplication app(argc, argv);
    Test<int> test;
return app.exec();
}


Вываливается ошибка main.cpp:112: undefined reference to `Test<int>::Test()'
Причем если я убираю cpp файл, а описываю реализацию методов в h файле все нормально.
В чем дело?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
void*
  опции профиля:
сообщение 8.2.2009, 14:43
Сообщение #2


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


просто у компиляторов С++ есть такая особенность - нельзя выносить реализацию шаблонов в .cpp-файлы

Сообщение отредактировал void* - 8.2.2009, 14:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 26.11.2024, 1:45