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

admin2012-12-29  16

问题 有如下类定义:
    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://kaotiyun.com/show/zgVp777K
0

最新回复(0)