可能有重复:
为什么模板类的实现和声明应该在同一个头文件中?
我试图在头文件中定义一个模板,然后在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
不是模板参数的有效名称,在那段代码中,base
继承自derived
,这至少是一个违反直觉的命名选择。 - David Rodríguez - dribeas