为使程序的输出结果为: Base:: fun 那么应在下列程序画线处填入的正确语句是( )。 #include <iostream> using namespace std; class Base { pub

admin2010-03-29  15

问题 为使程序的输出结果为:    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

答案4

解析 本题程序中类Derived是从基类Base公有继承的。主函数中定义了一个基类对象a和一个指向基类对象的指针pb,又定义了一个派生类Derived对象b。当 pb指向对象b时,pb->fun()调用基类Base的成员函数fun()。这是由于Derived是 Base的子类型,因此可以将派生类Derived的对象b的地址赋值给指向基类Base的指针pb,但这时指针pb只能使用从基类Base继承的成员。
转载请注明原文地址:https://kaotiyun.com/show/9Tjp777K
0

随机试题
最新回复(0)