C++对象数组问题

2024-11-16 18:27:03
推荐回答(2个)
回答1:

默认构造函数,就是没有构造函数,系统默认就有一个的。

回答2:

有两种情况需要默认构造函数:
1.没有提供初始化列表,如:Stock stocks[4];
这种情况下编译器将调用Stock类的默认构造函数来初始化对象数组中的每个元素。
2.提供了初始化列表,但初始化列表中的元素个数少于数组长度。如:Stock stocks[5] = {Stock("A"), Stock("B"), Stock("C"), Stock("D")};
这种情况下stocks数组的前4个元素将用Stock(const char*)初始化,而剩下的1个元素将用默认构造函数Stock()初始化。
你的程序里,如果宏STKS是4的话,数组长度和初值表中元素个数是一致的,此时无需提供默认构造函数。