如何初始化对象数组?

时间:2014-10-26 05:18:56

标签: c++ string

  

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

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

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

3 个答案:

答案 0 :(得分:1)

当你这样做时:

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

您正在明确指定数组大小(可能是从内容中隐含的),因为您提供单个字符串对象的内容会导致通过再次调用复制构造函数来完成内容的初始化(不必要但是正确),所以你可以做以及:

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

答案 1 :(得分:0)

你可以做到

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

编译器将找出其余的

答案 2 :(得分:0)

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