问题
单项选择题
有如下类定义: class Point { int x_,y_;public: Point():x_(0),y_(0){} Point(int x,int y=0):x_(x),y_(y){} }; 若执行语句 Point a(2),b[3],*c[4]; 则Point类的构造函数被调用的次数是
A.2次
B.3次
C.4次
D.5次
答案
参考答案:C
解析: 本题考查的知识点是类的构造函数。构造函数在对象被创建的时候由系统自动调用。在Point a(2),b[3],*c[4];语句中:a(2)是定义一个对象并传入构造参数2,所以此时会调用1次构造函数:b[3]是定义一个包含3个对象的数组,所以构造函数会被调用3次;而*c[4]定义的是一个包含4个Point类对象指针的数组,它并没有创建任何Point对象,故构造函数一次也不会被调用。故应该选择C。