以下程序执行结果是 ( )。 #include <iostream.h> class Base { public virtual void fun() { cout<<"B"; } }; class

admin2013-05-30  13

问题 以下程序执行结果是 (   )。    #include <iostream.h>    class Base    {    public       virtual void fun() {  cout<<"B";   }    };    class Derived    {    public:       Derived() {  cout<<"D";   }       virtual void fun(){  Base::fun();  cout<<"C";   }    }    int main ()    {       Base *ptr;       Derived obj;       ptr=&obj;       p->fun ( );       return 0;    }

选项 A、DBC
B、DCB
C、BDC
D、CBD

答案1

解析 本题考核虚函数的应用。主函数中创建派生类Derived的对象。obj时,调用其构造函数首先输出字符’D’。然后调用fun()函数,由于派生Derived已对基类的虚函数fun()进行了重定义,所以语句“p->fun();”调用的是派生类中的函数fun(),即输出BC。所以答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/nxE0FFFM
0

最新回复(0)