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

admin2009-01-15  26

问题 下面程序的运行结果是(    )。    #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;}         ~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()

答案1

解析 本题考查虚函数的使用,通过基类指针指向派生类的对象,从而动态地访问派生类对象中的虚函数。本题若没有把A类中的析构函数说明为 virtual,则答案为C。
转载请注明原文地址:https://kaotiyun.com/show/9Nkp777K
0

最新回复(0)