如何初始化对象数组

How to initialize array of objects?

本文关键字:数组 对象 初始化      更新时间:2023-10-16

定义一个字符串数组,并将其他元素初始化为"widget"。未初始化为"小部件"的元素应由默认构造函数初始化。

我该怎么做?初始化数组的唯一方法是使用默认构造函数。我想做这样的事情,但不确定这是否有效:

string strings[3] = {string(), string ("widget"), string()};

当你这样做时:

string strings[3] = {string(), string ("widget"), string()};

您正在显式指定数组大小(可能是从内容中隐式指定的),作为内容,您正在提供单独的字符串对象,通过再次调用复制构造函数来初始化内容(不必要,但正确),因此您可以执行以下操作:

string strings[] = {"", "widget", ""};

您可以进行

string strings[] = {"", "widget", ""};

编译器将计算出剩余的

string strings[] = {{}, {"widget"}, {}, {"widget"}};