问题 单项选择题

以下程序执行结果是 ( )。 #include <iostream.h> class Base { publicvirtual 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

答案

参考答案:A

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

单项选择题 共用题干题
单项选择题