把一个类的析构函数定义成virtual

来源:互联网 发布:淘宝情趣内衣买家秀吧 编辑:程序博客网 时间:2024/06/05 16:07
 #include <iostream> using namespace std;  class A { public:    virtual ~A() { cout << "Destroy A" << endl; } };  class B : public A { public:   ~B() { cout << "Destroy B" << endl; } };  int main() {   A* p = new B;   delete p;//如果上面不加virtual,delete p只析构类A//如果加上,先析构B再析构A,正确做法!   return 0;}自己把这个程序运行一下就知道了。good luck.
0 0