C++虚析构函数

来源:互联网 发布:女生好听的英文名知乎 编辑:程序博客网 时间:2024/06/06 10:51
class A{public:A(){cout << "A ctor." << endl;}virtual ~A(){cout << "A dtor." << endl;}};class B: public A{public:B(){cout << "B ctor." << endl;}~B(){cout << "B dtor." << endl;}};int main(){A *ptr = (A *)new B;delete ptr;return 0;}


父类指针指向new出来的子类对象的时候,如果父类的析构函数不是虚函数,则在delete的时候不会调用子类的析构函数。


父类析构函数不是虚函数的时候,运行结果:

A ctor.
B ctor.
A dtor.
请按任意键继续. . .


父类析构函数式虚函数的时候,运行结果:

A ctor.
B ctor.
B dtor.
A dtor.
请按任意键继续. . .

0 0
原创粉丝点击