单选题
有如下类定义: class Test { int x_,y_; public: Test ():a_(0) ,b_(0) {} Test(int a,int b=0) :a_(a),b_(b){} }; 若执行语句 Test x(2) ,y[3],
*
z[4]; 则Test类的构造函数被调用的次数是( )。
A、
2次
B、
3次
C、
4次
D、
5次
【正确答案】
C
【答案解析】
[解析] 定义对象x时执行一次构造函数(调用Test(int a,int b=0) ),定义对象数组y时,构造函数(注意,该构造函数必须是没有任何参数的)的执行次数与数组中对象的个数相等,即需要执行3次,最后定义一个指向Test对象的指针数组,它并不会创建对象,从而也就不会去执行构造函数,故构造函数一共执行了4次。
提交答案
关闭