C和D是正确的
A .MyClass arrays[2]; 因为Myclass没有默认构造函数,所以没有完全的初始化列表就无法无法创建这个数组
B .MyClass arrays[2] = { MyClass (5) }; 原因同上
C .MyClass arrays[2] ={ MyClass (5),MyClass (6)}; 这个提供了完全的初始化列表,正确
D .MyClass *arrays[2] = {new MyClass (2) }; 这个array数组是myclass的指针组成的数组,并且第一个元素被初始化,第二个元素被初始化为NULL
构造函数用来初始化一个类的对象,析构函数用于释放掉类的对象之后的处理,比如释放里面的内存块。类的对象数组很简单,就理解成普通数据,比如int[2]这样的数组,有不懂的可以继续问