问题
单项选择题
以下程序执行结果是 ( )。
#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选项。