dee*_*eeJ 0 c++ templates abstract
我有一个非模板化的抽象基类.如何在派生类之外定义纯虚函数?
#include <iostream>
class base {
public:
virtual void func() = 0;
};
template<typename T>
class der : public base{
};
template<typename T>
void der<T>::func()
{
std::cout<<"In Der";
}
Run Code Online (Sandbox Code Playgroud)
出现以下错误:
template.cpp:13: error: no ‘void der<T>::func()’ member function declared in class ‘der<T>’
template.cpp:13: error: template definition of non-template ‘void der<T>::func()’
Run Code Online (Sandbox Code Playgroud)
声明成员函数.
template<typename T>
class der : public base{
public:
void func();
};
Run Code Online (Sandbox Code Playgroud)
您可能希望或不希望在派生类中覆盖成员函数的自动声明 - 您必须显式声明和定义这些函数.派生类是否作为模板实现并不重要.