问题 单项选择题

下面程序的运行结果是( )。
#include<iostream>
using namespace std;
class A

public:
virtual~A()
cout<<"call A::~A()"<<endl;
;
class B:public A

char * p;
public:
B(int i)
p=new char[i];
~B()

delete(p);
cout<<"call B::~B()";

;
void main()

A * a=new B(8);
delete a;

A.call B::~B()call A::~A()

B.call B::~B()

C.call A::~A()

D.call A::~A()call B::~B()

答案

参考答案:A

解析: 本题考查虚函数的使用,通过基类指针指向派生类的对象,从而动态地访问派生类对象中的虚函数。本题若没有把A类中的析构函数说明为 virtual,则答案为C。

单项选择题
单项选择题