Class 链接器/继承/虚拟函数问题
从模板类继承时遇到问题。Class 链接器/继承/虚拟函数问题,class,templates,inheritance,linker,virtual,Class,Templates,Inheritance,Linker,Virtual,从模板类继承时遇到问题。 看起来像这样: template<typename type> class base { protect: ... public ... virtual bool func1(type var1); }; 链接器提供了以下格式的错误:LNK2001,未解析的符号基::func1(type_spec_1) 好像它没有看到“派生的”==base“ 如果可能的话,我如何提供正确的语法??您不需要这样做吗 templat
看起来像这样:
template<typename type>
class base {
protect:
...
public
...
virtual bool func1(type var1);
};
链接器提供了以下格式的错误:LNK2001,未解析的符号基::func1(type_spec_1)好像它没有看到
“派生的”==base“
如果可能的话,我如何提供正确的语法??您不需要这样做吗
template<typename type>
class base {
protect:
...
public
...
// provide implementation to be overriden
virtual bool func1(type var1) { return (bool) 0; }
};
模板
类基{
保护:
...
公开的
...
//提供要覆盖的实现
虚拟布尔func1(类型var1){return(bool)0;}
};
因为
class-derived:public-base
说derived
是从类型base
派生出来的,但是base
的类型定义还没有完全实现?您不需要这样做吗
template<typename type>
class base {
protect:
...
public
...
// provide implementation to be overriden
virtual bool func1(type var1) { return (bool) 0; }
};
模板
类基{
保护:
...
公开的
...
//提供要覆盖的实现
虚拟布尔func1(类型var1){return(bool)0;}
};
因为
class-derived:public-base
说derived
是从类型base
派生出来的,但是base
的类型定义还没有完全实现?谢谢。这就成功了。我一直假设虚函数是抽象的,直到你给了它们一个定义。@Jen:你可以编写虚布尔函数1(类型var1)=0来实现它。寻找“纯虚拟方法”@jen-好主意。你为什么不用一个例子来发布一个答案呢!结果证明我的方法有点复杂,即首先我有一个结构,其参数取决于模板类型名:struct{typename1 Type;};然后我有一个函数返回这个“动态”结构,然后抽象函数不能被创建,它们必须被定义!谢谢这就成功了。我一直假设虚函数是抽象的,直到你给了它们一个定义。@Jen:你可以编写虚布尔函数1(类型var1)=0来实现它。寻找“纯虚拟方法”@jen-好主意。你为什么不用一个例子来发布一个答案呢!结果证明我的方法有点复杂,即首先我有一个结构,其参数取决于模板类型名:struct{typename1 Type;};然后我有一个函数返回这个“动态”结构,然后抽象函数不能被创建,它们必须被定义!
template<typename type>
class base {
protect:
...
public
...
// provide implementation to be overriden
virtual bool func1(type var1) { return (bool) 0; }
};