计算机二级

有如下类定义:class XX{int XX;public:xx():xx(0){tout<<A;}XX(int n):xx(n){cout<<B;}};class Y:Y:public XX{int YY;public:YY():YV(O){cout<<YY;)YY(int n):xx(n+1),YY(n){cout<<YY;}YY(int m,int n):XX(m),YY(n){cout<<yy;)};下列选项中,输出结果为A0的语句是A.YY yl(0,0);B.YY 72(1);C.YY y3(

题目

有如下类定义:

class XX{

int XX;

public:

xx():xx(0){tout<<A;}

XX(int n):xx(n){cout<<B;}

};

class Y:Y:public XX{

int YY;

public:

YY():YV(O){cout<<YY;)

YY(int n):xx(n+1),YY(n){cout<<YY;}

YY(int m,int n):XX(m),YY(n){cout<<yy;)

};

下列选项中,输出结果为A0的语句是

A.YY yl(0,0);

B.YY 72(1);

C.YY y3(0);

D.YY y4;

参考答案和解析
正确答案:D
解析:建立派生类对象时,构值函数的执行顺序为:执行基类的构造函数一执行成员对象的构造函数一执行派生类的构造函数。D)选项定义对象y4时没有传人任何值,则先调用基类的构造函数.XX( ),输出‘A。,然后调用派生类的构造函数YY( ),输出yy=0,最终输出为A0。故本题答案为D)。
如果没有搜索结果,请直接 联系老师 获取答案。
更多相关问题