从模板类继承有困难。
看起来像这样:
template<typename type>
class base {
protect:
...
public
...
virtual bool func1(type var1);
};
//这个类不是模板化的,而是派生自模板类,不知道它的问题是什么
class derived : public base<type_spec_1> {
protected:
...
public:
...
bool func1(type_spec_1);// function I wish to override;
};
//在.cpp中,我尝试调整函数的范围,它编译但不链接
bool derived::func1(type_spec_1 type){ return false; };
链接器以这种格式给出错误:LNK2001,未解析的符号base :: func1(type_spec_1);
就像它没有看到"derived"==base"<type_type_1>"
如果可能的话,我怎样才能为此提供正确的语法????
答案 0 :(得分:1)
你不需要这样做吗?
template<typename type>
class base {
protect:
...
public
...
// provide implementation to be overriden
virtual bool func1(type var1) { return (bool) 0; }
};
因为class derived : public base<type_spec_1>
说derived
来自某个类型base<type_spec_1>
,但base<type_spec_1>
的类型定义尚未完全实现?