通过指向 Base 的指针删除 Derived 对象时,一定会先调用 Derived 的析构函数,再调用 Base 的析构函数
#include<iostream>
using namespace std;
class Base{
public:
~Base(){
cout<<"Base destructor"<< endl;
}
};
class Derived: public Base{
public:
~Derived(){
cout<<"Derived destructor"<< endl;
}
};
int main(){
Base* p= new Derived();
delete p;
return 0;
}
正确
错误