有如下类定义:    class Point    {         int x_,y_;       public:         Point():x_(0),y_(0){}         Point(int x,int y=0):x_(x),y_

admin2017-10-17  53

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

最新回复(0)