C++ - 子类析构函数是否应显式调用基类析构函数?

q09*_*987 2 c++

可能重复:
我是否需要显式调用基本虚拟析构函数?

大家好,

我想知道子类析构函数是否应该显式调用基类析构函数.我的回答是否定的.

例如,

class A
{
public:
   A() {...}
   virtual ~A() {...}
protected:
   ...
private:
   ...

};


class B: public A
{
public:
   B() {...}
   virtual ~B() 
   {
     ...
     // should we call destructor of A?
   }
protected:
   ...
private:
   ...

};
Run Code Online (Sandbox Code Playgroud)

谢谢

fal*_*tro 5

不,绝不应该显式调用析构函数(在子类中或者其他情况下,从根本上说,从不),编译器将为您处理.

您可能希望明确调用它的唯一情况是您正在滚动自己的内存管理,并且您实际上是显式释放内存(而不是删除一堆对象).