【发布时间】:2015-07-09 13:15:25
【问题描述】:
以下代码
#include <iostream>
template<typename T>
class Abstract
{
public:
virtual ~Abstract()
{}
virtual void func(const T ¶m) const = 0;
};
class Concrete : public Abstract<int*>
{
public:
virtual void func(const int *¶m) const override // watch out!
{}
};
int main()
{
Concrete c;
}
在标有注释的行产生以下编译错误:
错误 C3668:“Concrete::func”:具有覆盖说明符“覆盖”的方法未覆盖任何基类方法
如果我删除override,将显示此错误:
错误 C2259:“具体”:无法实例化抽象类
如何从Abstract<int*>派生?
【问题讨论】: