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

admin2010-06-06  33

问题 若有以下程序:    #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)  :dl(X){}       void dispa()       {          cout<<dl.X<<",";       }    };    class B:public A    {    private:       data d2;    public:       B(int  x)  :  A(x-1),d2(x){}       void dispb()       {          cout<<d2.x<<endl;       }    };    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

答案C

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

最新回复(0)