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

admin2009-02-15  30

问题 若有以下程序:      #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<<",";       }     };      class B: 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/FFd0FFFM
0

最新回复(0)