如何在派生类的析构函数中调用基类的析构函数?

如何在派生类的析构函数中调用基类的析构函数?
2025-03-10 00:15:56
推荐回答(4个)
回答1:

自动调用不需要管

除非一种情况

基类指针指向的是子类的对象,然后delete 基类指针,这种情况需要将基类的析构声明成虚函数
virtual ~XXX()

回答2:

派生类对象在生命周期结束后先调用自己的析构函数,然后会自动掉基类的析构函数

回答3:

#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的析构函数

回答4:

#include
class A{
public:
~A() {std::cout<<"A";}
};
class B:public A{
public:
friend class A;
~B() {A::~A();}
};
int main(void)
{
B a;