C++的虚析构函数

下面一段代码:

#include <iostream>

using namespace std;

 

class A {

     public:

     A() { cout << "constructor : A()" << endl;

     virtual ~A() { cout << "destructor: ~A()" << endl;

};

 

class B : public A {

      public:

      B() { cout << "constructor:B()" << endl; }

      ~B() { cout << "destructor: ~B()" << endl; }

};

 

int main()

{

       A *p = new B;

       delete p;

}

 

如果没有virtual ~A(),输出如下:

constructor:A()

constructor:B()

destructor:~A()

如果有virtual ~A(),输出如下:

constructor:A()

constructor:B()

destructor:~B()

destructor:~A()

 http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html

posted @ 2015-09-08 23:43  forwardslash  阅读(87)  评论(0)    收藏  举报