单选题
有如下类定义: class MyClass{ int k; public: MyClass(int n):k(n){} }; 则下列数组定义中,错误的是( )。
【正确答案】
C
【答案解析】解析:MyClass提供一个参数为整型变量的构造函数,构造对象时,使用参数初始化成员k的值;选项A定义一个包含4个元素的数组,数组元素的类型是MyClass类型,并且对该数组的4个元素分别显示调用构造函数完成初始化,选项A正确;同理,选项B定义数组m4,由于初始化值个数为3个,所以系统默认该数组长度为3,选项B正确;选项D定义数组m4,使用3个整数初始化数组元素,此时系统调用构造函数将整数隐式转换成MyClass类型,并默认数组长度为3,选项D正确;选项C同样定义数组m4,它包含4个元素,初始化时,同样使用3个整数1,2,3初始化前3个元素,系统调用构造函数将整数隐式转换成MyClass类型,来完成前3个元素的初始化,但是由于MyClass没有默认构造函数,所以第4个元素不能完成构造,选项C错误,本题答案为C。