问题 单项选择题

有如下类定义: class XX{ int xx; public: XX( ):xx(0){eout<<’A’;} XX(int n):xx(n){tout<<’B’;} }; class YY:public XX{ mt yy; public: YY( ):yy(0)i cout<<yy;} YY(int n):XX(n+1),yy(n){cout<<yy;} YY(int m,int n):XX(in),yy(n){cout<<yy;} }; 下列选项中,输出结果为A0的语句是

A.YY y1(0,0);

B.YY y2(1);

C.YY y3(0);

D.YY y4;

答案

参考答案:D

解析: 派生类对象创建时,先调用基类的构造函数,然后调用派生类的构造函数。若要打印出“AO”,显然是分别调用了基类和派生类的无参构造函数,故答案为D。

选择题
单项选择题