c++ - 初始化结构中的默认值

标签 c++

如果我只需要初始化 C++ 结构的几个选择值,这是否正确:

struct foo {
    foo() : a(true), b(true) {}
    bool a;
    bool b;
    bool c;
 } bar;

我是否正确假设我最终会得到一个名为 barstruct 项目,其中包含元素 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/

相关文章:

c++ - 双/二元突变

c++ - IE 地址栏搜索。我需要在当前结果列表的末尾添加其他结果列表

c++ - 工厂方法说明

c++ - 使用分段寻址模式的 16 位系统上 `size_t` 、 `uintptr_t` 、 `intptr_t` 和 `ptrdiff_t` 类型的实际大小是多少?

c++ - 在没有 SDL 或 GLUT 的情况下检测按键的最佳方法?

c++ - 使用在构建阶段链接的 C++ 库编译 Xcode Swift 项目时出错

c++ - std::function 和 std::function 的比较

c++ - 如何准确找到标记的中心?

c++ - 让 WinVerifyTrust 使用目录签名文件,例如 cmd.exe

c++ - 部分模板重载