A-A+

?有如下程序:include(iostream.h>includecla

2022-08-06 02:22:03 问答库 阅读 174 次

问题详情

?有如下程序:
include(iostream.h>
include<stdlib.h>
classTestClass
{
public:
intX,y;
TestClass(){x=y=0;}
TestClass(inta,intb){x=a;y=b;}
voiddisp()
{
cout$amp;}
};
voidmain()
{
TestClasss1(2,3);
s1.disp();
}
程序执行后的输出结果是()。
A.100
B.000
C.010
D.001请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:B

D。【解析】本题考查的知识点是豢的构造。建立一个类的对象时,构造函数的执行顺序如下:①执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);②执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);③执行自身的构造函数。本题Derived类继承于Base类,所以首先会构造基类Base,但Derived类的构造函数没有初始化列表,所以将调用Base类的默认构造函数,输出一个0。接下来由于它的成员中还定义了一个Base类的对象,两构造函数也没有显示初始化这个对象,所以再次调用Base类的默认构造函数输出一个0。最后构造自身,因为主函数中传入了构造参数1,所以构造自身时输出了一个1。故最终输出结果为001。

考点:程序