Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Шаблонный класс


Автор: zss 19.2.2006, 13:50
объявляю шаблонный класс
Код

template <class T>
class SomeClass {
...
}


и хочу реализацию методов поместить в *.cpp файл.
Но почему-то получается только в *.h файле.

Можно ли это сделать в *.cpp ?

Автор: Mayk 19.2.2006, 13:54
Без экспорта шаблонов - нет.
А так как экспорт шаблонов скорее всего не реализован, то нет.

Ну или помести реальзацию в .cpp, а потом за#include'ь его.

Автор: zss 19.2.2006, 14:15
Цитата(Mayk @ 19.2.2006, 13:54 Найти цитируемый пост)
Без экспорта шаблонов - нет.
А так как экспорт шаблонов скорее всего не реализован, то нет.

Ну или помести реальзацию в .cpp, а потом за#include'ь его.


Mayk, что-то ничего не понял smile

Автор: Mayk 19.2.2006, 14:31
Цитата(zss @ 19.2.2006, 18:15 Найти цитируемый пост)


Mayk, что-то ничего не понял


Код

//a.h
template <class T>
struct Sizer{
    int fooBar();
};

#include "a.cpp"



Код

//a.cpp
template<class T>
int Sizer<T>::fooBar()
{
return sizeof(T);
}


Автор: zss 19.2.2006, 14:35
Mayk, спасибо - получилось
Добавлено @ 14:43
правда появились конфликты с *.cpp файлом smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)