有如下类定义: class Test { int x_,y_; public: Test ():a_(0) ,b_(0) {} Test(int a,int b=0) :a

admin2012-01-20  28

问题 有如下类定义:    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次。
转载请注明原文地址:https://jikaoti.com/ti/ZaL0FFFM
0

最新回复(0)