c++11 - 类内初始化器到底是什么?
问题描述
我已经阅读了许多提到类内初始化器的文本,并且我在 stackoverflow 上搜索了许多问题,但是我没有找到关于什么是类内初始化器的任何精确解释。据我了解,在任何函数之外声明的内置类型的变量都将由编译器默认初始化,类内初始化程序是否对声明的变量执行相同的操作?
解决方案
这是类内初始化的简单示例。它对于减少输入非常有用,尤其是在有多个构造函数签名可用时。它也在核心指南中被推荐。
class Foo {
public:
Foo() = default; // No need to initialize data members in the initializer list.
Foo(bool) { /* Do stuff here. */ } // Again, data member already have values.
private:
int bar = 42;
// ^^^^ in-class initialization
int baz{};
// ^^ same, but requests zero initialization
};
由于数据成员是显式初始化的,因此您问题的第二部分并不真正适用于类内初始化。
推荐阅读
- javascript - JavaScript SWITCH CASE 不适用于变量日期格式
- java - 如何使用 Xpath 计算 DIV 中的 IMG 标签
- php - mysql中的多连接表并在php数组中选择多面体值
- .net-core - NetCore 中的 Specflow Html 报告
- python - 如何在python中给定的不规则数字之间插入1个区间数
- typescript - TS2345 类型参数不可分配给类型参数:使用在另一个模块中声明的一个模块
- reactjs - 致命:无法读取“https://github.com”的用户名:无效参数
- java - 单元测试需要很长时间才能执行
- ios - 上传到 App Store 时二进制文件无效
- swift - 如果让editItemVC = segue.destination 为?ItemDetailViewController {} 不起作用