-3

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

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++ 中初始化结构而无需提供构造函数?

4

1 回答 1

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

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

这些都是有效的。

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

于 2013-05-31T21:55:42.673 回答