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; } 
};