我读了很多关于类初始化的文章,我搜索了很多关于stackoverflow的问题,但是我没有找到关于什么是类初始化的确切解释。据我了解,任何函数外部声明的内置类型的变量将由编译器默认初始化,类内初始化器是否对声明的变量执行相同的操作?
答案 0 :(得分:1)
这是类内初始化的简单示例。这对于减少类型输入很有用,尤其是在有多个构造函数签名可用时。也建议在core guidelines中使用。
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 default initialization
};
由于数据成员已显式初始化,因此问题的第二部分实际上不适用于类内初始化。