第 1 页 /A*a new B;/关于父类子类 new 一个新对象时,先后如何调用的问题。 (笔试中经常考到的题目)#includeusing namespace std;class A public:A()cout“构造 An“;A()cout“析构 An“;class B : public A public:B()cout“构造 Bn“;B()cout“析构 Bn“;class C public:C()cout“构造 Cn“;virtual C()cout“析构 virtual Cn“;第 2 页 ;class D : public C public:D()cout“构造 Dn“;D()cout“析构 Dn“;int main( )A* a;a = new B;delete a;coutendlendl;B* b;b = new B;delete b;coutendlendl;cout“-昏割线-nn“;C* c;c = new D;delete c;coutendlendl;D* d;d = new D;delete d;第 3 页 return 0;析构函数为什么定义为虚函数呢?为了防止内存泄漏。