私は、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_;
}