问题 单项选择题

以下程序执行结果是 ( )。
#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

答案

参考答案:A

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

判断题
单项选择题