有以下程序: #inClUde <iostream> using namespace std; Class Base { public: Base(int x) { a=x;

admin2010-03-29  24

问题 有以下程序:    #inClUde  <iostream>    using  namespace  std;    Class  Base    {    public:       Base(int  x)       {          a=x;       }       void  show()       {          cout<<a;       }    private:       int  a;    };    class  Derived  :  public  Base    {    public:       Derived(int  i)  :Base(i+1),b(i){}       void  Show()       {          cout<<b;       }    private:       int  b;    };    int  main()    {       Base  b(5),*pb;       Derived  d(1);       pb=&d;       pb->show();       return  0;    }    运行后的输出结果是(    )。

选项 A、1
B、5
C、2
D、0

答案4

解析 基类Base派生出派生类Derived,在主函数中,定义了基类对象b,基类指针pb,以及派生类对象d,并让基类指针pb指向派生类对象d。在C++中,当派生类的对象赋值给基类对象时,只能使用派生类对象中从基类继承的成员。所以最后执行语句“pb->show();”是调用基类的成员函数show(),输出a的值2。
转载请注明原文地址:https://kaotiyun.com/show/0Djp777K
0

相关试题推荐
最新回复(0)