可能重复:
Why should the implementation and the declaration of a template class be in the same header file?派生类中定义的头文件和定义模板,以CPP文件
我试图定义一个头文件模板,定义它在一个cpp文件中,模板应该在派生类中定义。所以这是我得到:
头文件:
#ifndef ........
#define .....
template <class mytypename>
class abcBaseClass:public abcDerivedClass{
public:
mytypename getvalue(char*)
};
#endif
源文件:
mytypename abcDerivedClass<mytypename>::getvalue(char* name){
}
我只是想知道这是做的正确方法它?。
这就是我想实现......我想打这个电话是
double x = a->getvalue<double>(char)
实现必须以与声明相同的文件结束,除非您显式实例化类型。 'typename'也是一个保留字。 –
正确的方法是将整个模板定义放在标题中。 –
你真的想做什么? 'typename'不是模板参数的有效名称,在那个代码中,'base'继承自'derived',这至少是一个反直觉的名称选择。 –