假设我有一个像这样的简单结构:
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 ++中初始化结构而无需提供构造函数?
答案 0 :(得分:3)
Simple s = { 4, "bill", 3.1f };
Simple s{ 4, "bill", 3.1f };
这些是有效的。
此语法将上述组/集中的每个值映射到每个结构成员变量,具体取决于顺序,您甚至不需要定义构造函数。