单选题 已知类MyClass声明如下:
class MyClass{
int U;
public:
MyClass(int k):n(k){ }
int getValue( )const{return n;}
};
在下列数组定义中正确的是
  • A. MyClass xl[2];
  • B. MyClass x2[2]={new MyClass(1),new MyClass(2)};
  • C. MyClass*x3[2];
  • D. MyClass*x4[2]={MyClass(1),MyClass(2)};
【正确答案】 C
【答案解析】[解析] 对象作为数组元素,对数组初始化赋值时,调用无参构造函数时,数组定义格式为: 类名 数组名[下标表达式]=new类名( )调用带有一个参数的构造函数时,数组定义格式为: 类名 数组名[下标表达式]=new{类名(参数),类名(参数)……}, 或者 类名 数组名[下标表达式]={参数1,参数2,……}。 当定义指针时,指针数组的每个元素都应该新建一个对象,一般格式为: 类名*指针名={new 类名(参数),new类名(参数),……}。