在我的C++入门,第5版,他们43页约默认初始化(重点煤矿)上说:默认初始化混乱
的对象的价值内置类型是不明确的初始化取决于它在哪里被定义。 在任何函数体外定义的变量都被初始化为零。
后来,73页,他们定义一个新类这样的:
struct Sales_data {
std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};
据说这是为了提供新的标准在类初始化的一个例子。在这种情况下,units_sold
和revenue
将被初始化为零。如果他们不是,他们说,变量将被默认初始化。
但这是我的问题:这个课堂初始化有什么意义?让他们进行默认初始化有什么问题?我问的原因是他们已经提到在任何函数体外定义的变量被初始化为零,在这种情况下,这些变量不在任何函数内 - 它们在类定义中。所以默认初始化应该将这些变量初始化为零,不是吗?
数据成员不会**被初始化为0,因此引用是错误的,或者有一些缺失的上下文。 – juanchopanza