通过指向 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;}