C++11 类内初始值设定项到底是什么?
我读过很多提到类内初始值设定项的文章,也搜索过很多关于stackoverflow的问题,但是我没有找到任何关于什么是类内初始值设定项的精确解释。据我所知,在任何函数外声明的内置类型的变量都将由编译器默认初始化,类内initilizer是否对声明的变量执行相同的操作 下面是一个简单的类内初始化示例。它对于减少键入非常有用,尤其是当有多个构造函数签名可用时。这也是我们推荐的 由于数据成员是显式初始化的,所以问题的第二部分实际上不适用于类内初始化C++11 类内初始值设定项到底是什么?,c++11,in-class-initialization,C++11,In Class Initialization,我读过很多提到类内初始值设定项的文章,也搜索过很多关于stackoverflow的问题,但是我没有找到任何关于什么是类内初始值设定项的精确解释。据我所知,在任何函数外声明的内置类型的变量都将由编译器默认初始化,类内initilizer是否对声明的变量执行相同的操作 下面是一个简单的类内初始化示例。它对于减少键入非常有用,尤其是当有多个构造函数签名可用时。这也是我们推荐的 由于数据成员是显式初始化的,所以问题的第二部分实际上不适用于类内初始化 class Foo { public: F
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
};