为使程序的输出结果为:
Base:: fun
那么应在下列程序画线处填入的正确语句是( )。
#include <iostream>
using namespace std;
class Base
public:
void fun ()
cout<<"Base: :fun"<<end1;
;
class Derived : public Base
public:
void fun ( )
cout<<"Derived: :fun"<<end1;
;
int main ( )
Base a,*pb;
Derived b;
_________;
pb->fun(); //调用基类的成员函数 fun()
return 0 ;
A.pb=&a
B.pb=b
C.pb=&b
D.pb=&Base
参考答案:C
解析: 本题程序中类Derived是从基类Base公有继承的。主函数中定义了一个基类对象a和一个指向基类对象的指针pb,又定义了一个派生类Derived对象b。当 pb指向对象b时,pb->fun()调用基类Base的成员函数fun()。这是由于Derived是 Base的子类型,因此可以将派生类Derived的对象b的地址赋值给指向基类Base的指针pb,但这时指针pb只能使用从基类Base继承的成员。