自动调用不需要管
除非一种情况
基类指针指向的是子类的对象,然后delete 基类指针,这种情况需要将基类的析构声明成虚函数
virtual ~XXX()
派生类对象在生命周期结束后先调用自己的析构函数,然后会自动掉基类的析构函数
#include
class A{
public:
~A() {std::cout<<"A";}
};
class B:public A{
public:
friend class A;
~B() {A::~A();}
};
int main(void)
{
B a;
}
声明为友元类,B的析构函数调用A的析构函数
#include
class A{
public:
~A() {std::cout<<"A";}
};
class B:public A{
public:
friend class A;
~B() {A::~A();}
};
int main(void)
{
B a;