首页 > 试题广场 >

下面程序的运行结果是________。

[问答题]

下面程序的运行结果是________。
#include <iostream.h>
class A
{
public:
A(){cout<<"A::A() called.\n";}
virtual ~A(){cout<<"A::~A() called.\n";}
};

class B:public A
{
public:
B(int i){
cout<<"B::B() called.\n";
buf=new char[i];}
virtual ~B()
{
delete []buf;
cout<<"B::~B() called.\n";
}

private:

char *buf;
};

void fun(A *a)
{
delete a;
}

void main()
{
A *a=new B(15);
fun(a);
}
A::A() called.
B::B() called.
B::~B() called.
A::~A() called.


析构函数调用的顺序与构造函数相反
发表于 2019-08-14 18:23:43 回复(0)