(c++常问问题五)虚析构函数
当子类析构需要调用父类的析构函数,基类的析构函数必须设置为虚析构函数
//基类 class base { base() { cout<<"base "; } virtual ~base() { cout<<"~base "; } } //派生类 class cat : public base { cat () { cout<<"cat "; } virtual ~cat () { cout<<"~cat "; } } void main() { cat* a = new cat(); delete a; } //输出如下: //base cat ~cat ~base(基类使用了虚析构) //base cat ~cat(基类没使用虚析构)