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

浙公网安备 33010602011771号