在我的C++入門,第5版,他們43頁約默認初始化(重點煤礦)上說:默認初始化混亂
的對象的價值內置類型是不明確的初始化取決於它在哪裏被定義。 在任何函數體外定義的變量都被初始化爲零。
後來,73頁,他們定義一個新類這樣的:
struct Sales_data {
std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};
據說這是爲了提供新的標準在類初始化的一個例子。在這種情況下,units_sold
和revenue
將被初始化爲零。如果他們不是,他們說,變量將被默認初始化。
但這是我的問題:這個課堂初始化有什麼意義?讓他們進行默認初始化有什麼問題?我問的原因是他們已經提到在任何函數體外定義的變量被初始化爲零,在這種情況下,這些變量不在任何函數內 - 它們在類定義中。所以默認初始化應該將這些變量初始化爲零,不是嗎?
數據成員不會**被初始化爲0,因此引用是錯誤的,或者有一些缺失的上下文。 – juanchopanza