在C+中,以下短語意味著什么:零、默認和值初始化?在C+中,以下短語意味著什么:零初始化,默認初始化,以及值初始化C+開發人員應該知道些什么呢?
2 回答
一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
到 零初始化T型物體是指: -如果T是標量類型(3.9),則將對象設置為轉換為T的0(0)值; -如果T是非并類型,則每個非靜態數據成員和每個基類子對象都為零初始化; -如果T是一個聯合類型,則對象的第一個命名數據成員為零初始化; -如果T是數組類型,則每個元素都為零初始化; -如果T是引用類型,則不執行初始化。
到 默認初始化T型物體是指: -如果T是非POD類型(第9條),則調用T的默認構造函數(如果T沒有可訪問的默認構造函數,則初始化不正確); -如果T是數組類型,則每個元素都是默認初始化的; -否則,對象將為零初始化。
到 值初始化T型物體是指: -如果T是具有用戶聲明的構造函數(12.1)的類型(第9條),則調用T的默認構造函數(如果T沒有可訪問的默認構造函數,則初始化是錯誤的); -如果T是一個沒有用戶聲明的構造函數的非聯合類型,那么T的每個非靜態數據成員和基類組件都是值初始化的; -如果T是數組類型,則每個元素都是值初始化的; -否則,對象將為零初始化。
調用引用類型實體的默認初始化或值初始化的程序格式不正確.如果T是cv限定類型,則使用cv不限定的T版本來定義零初始化、默認初始化和值初始化.
- 2 回答
- 0 關注
- 525 瀏覽
添加回答
舉報
0/150
提交
取消
