若有以下程序: #include<iostream> using namespace std; class data { public: int x; data(int x) {

admin2010-03-29  18

问题 若有以下程序:    #include<iostream>    using namespace std;    class data    {    public:      int x;      data(int x)      {         data::x=x;      }     };    class A    {    private:       data d1;    public:       A(int x):d1(x){}       void dispa()      {       cout<<d1.X<<",";      }    };    classB:public A    {    private:      data d2;    public:      B(int x):A(x-1),d2(x){}      void dispb()     {       cout<<d2.x<<end1;     }    };    class C:public B    {      public:        C(int x):B(x-1){}        void disp()       {         dispa();         dispb();       }     };    int main()    {        C obj(5);        obj.disp();        return 0;    }    程序执行后的输出结果是

选项 A、5,5
B、4,5
C、3,4
D、4,3

答案4

解析 本题考核派生类的定义和访问权限。本题涉及多层次的继承关系。类B是类A的派生类,类C又是类B的派生类。类C中的构造函数调用了类B的构造函数来初始化类B的私有数据成员,而类B的构造函数又调用了类A的构造函数来初始化类A的私有数据成员。由此可知,程序最后的输出为3,4。
转载请注明原文地址:https://jikaoti.com/ti/XiW0FFFM
0

最新回复(0)