如果我只需要初始化 C++ 结构的几个选择值,这是否正确:
struct foo {
foo() : a(true), b(true) {}
bool a;
bool b;
bool c;
} bar;
我是否正确假设我最终会得到一个名为 bar
的 struct
项目,其中包含元素 bar.a = true
, bar.b = true
和一个未定义的 bar.c
?
最佳答案
你甚至不需要定义构造函数
struct foo {
bool a = true;
bool b = true;
bool c;
} bar;
澄清一下:这些称为大括号或等号初始化器(因为您也可以使用大括号初始化而不是等号)。这不仅适用于聚合:您可以在普通类定义中使用它。这是在 C++11 中添加的。
关于c++ - 初始化结构中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16782103/