具有默认构造函数的类的成员是否初始化为零?

时间:2019-04-19 08:37:12

标签: c++ c++11 initialization language-lawyer

如果我有课:

class MyClass {
   public:
    int value;
};

如果我不对类进行零初始化,则成员value不会被零初始化:

MyClass c;
std::cout << c.value; // UB: value not initialized.

默认默认构造函数是否可以确保成员被零初始化?

class MyClass {
   public:
    int value;
    MyClass() = default;
};

如果我明确默认使用默认构造函数,value会立即初始化为零吗?

MyClass c;
std::cout << c.value; // Guaranteed to print zero?

注意:这个问题不是重复的,因为我是在问默认构造函数是显式默认的情况,而另一个问题仅涉及以下情况:没有提供。

0 个答案:

没有答案