若有一个Myclass类,则执行语句“MyClass obj1,obj2[2], *p;”后,自动调用该类的构造函数( )次。
【正确答案】:3
【题目解析】:
创建对象obj1时,调用一次构造函数。
obj2[2]是对象数组,数组中每个元素都需要调用无参的构造函数进行初始化,故创建对象,obj2[2]时,因为这是一个含有2个元素的数组,所以需要调用2次构造函数。
而对于指针p,仅是说明了这个指针,并未与对象相关,所以并不调用构造函数。
故一共调用1+2=3次。
若有一个Myclass类,则执行语句“MyClass obj1,obj2[2], *p;”后,自动调用该类的构造函数( )次。
若有一个Myclass类,则执行语句“MyClass obj1,obj2[2], *p;”后,自动调用该类的构造函数( )次。
创建对象obj1时,调用一次构造函数。
obj2[2]是对象数组,数组中每个元素都需要调用无参的构造函数进行初始化,故创建对象,obj2[2]时,因为这是一个含有2个元素的数组,所以需要调用2次构造函数。
而对于指针p,仅是说明了这个指针,并未与对象相关,所以并不调用构造函数。
故一共调用1+2=3次。