问题
单项选择题
有如下类定义: 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次。