此零是否初始化数据项

Does this zero initialize the data item?

本文关键字:数据项 初始化 是否      更新时间:2023-10-16

我发现自己对 c++ 中的零初始化规则感到困惑。用这个代码data_初始化为零?我相信应该是这样,并且使用我的编译器查看生成的汇编代码是这样,但我知道这并不能保证它是必需的。

#include <iostream>
class test
{
public:
    test(); 
    int data_;
};

// Does this zero initialize data_ ?
test::test() : data_()
{
}
int main()
{
    test t;
    std:: cout << t.data_;
}

是:data_()表示值初始化,对于基本类型,值初始化是零初始化,即 data_将从值0开始。