当用C++覆盖一个类(使用虚拟析构函数)时,我在继承类上再次将析构函数实现为虚拟,但是我是否需要调用基本析构函数?
如果是这样,我想它就是这样......
MyChildClass::~MyChildClass() // virtual in header
{
// Call to base destructor...
this->MyBaseClass::~MyBaseClass();
// Some destructing specific to MyChildClass
}
Run Code Online (Sandbox Code Playgroud)
我对吗?
我有一个抽象的基类,它的目的是允许创建一个指向基类的指针数组.(对'很多东西'有用......)
我的抽象基类不包含任何成员函数.因此没有纯虚方法,因此我猜它在技术上并不是抽象的.
但是,我不希望能够创建此类的实例.
是否可以创建无成员抽象基类?如果没有,是否有另一种解决方案来阻止我的"抽象基础"的实例被创建?是否会使构造函数protected足够?
有人向我指出,实际上,如果该类的目的是允许创建指向基类的指针的向量或数组,则不需要抽象基类 - 可能根本就没有基类和使用继承层次结构顶部的类作为基类.或者,可以复制并粘贴该顶级类并交换实现的纯虚函数方法而不实现,但是这在逻辑上与抽象基指针的想法不一致,并且会导致更难以维护代码.