有没有一种方便的方法来初始化C ++中的简单结构?

时间:2013-05-31 21:53:10

标签: c++ syntax constructor struct initialization

假设我有一个像这样的简单结构:

struct Simple
{
    int weight;
    std::string name;
    float power;
};

我希望能够在不为其创建构造函数的情况下初始化其中一个,而无需单独设置其参数。我梦想有这样的语法,例如:

Simple s( 4, "bill", 3.1f );

...或者......或者......

Simple s = { 4, "bill", 3.1f };

......或者确实......

Simple s{ 4, "bill", 3.1f };

我知道我可以通过添加我自己的braindead构造函数来获得第一个工作示例。乏味的。

同样,最后一个例子可以在C ++ 11中使用,但我相信我必须提供构造函数。

有没有办法简单而优雅地在C ++中初始化结构而无需提供构造函数?

1 个答案:

答案 0 :(得分:3)

Simple s = { 4, "bill", 3.1f };

Simple s{ 4, "bill", 3.1f };

这些是有效的。

此语法将上述组/集中的每个值映射到每个结构成员变量,具体取决于顺序,您甚至不需要定义构造函数。