这是代码的格式:
class C
{
public:
C();
virtual ~C() = 0;
};
class D : public C
{
public:
D();
~D();
};
C::C(){
}
C::~C(){
}
D::D(){
}
D::~D(){
}
int main(){
C *c = new C();
D *d = new D();
return 0;
}
当我尝试实例化时c
,出现以下错误:
1>c:\main.cpp(59): error C2259: 'C' : cannot instantiate abstract class
我知道我不能调用虚拟析构函数,但是在概念上有一些我不知道的东西。有人可以解释一下吗?