如果我有课:
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?
注意:这个问题不是重复的,因为我是在问默认构造函数是显式默认的情况,而另一个问题仅涉及以下情况:没有提供。