我发现自己对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_;
}
答案 0 :(得分:11)
是:data_()
表示值初始化,对于基本类型,值初始化为零初始化,即data_
将以值0
开始。< / p>