必須使用成員初始化列表進行初始化的情況:
1)初始化乙個引用成員變數;
2)初始化乙個常量成員變數;
3)呼叫基類的建構函式,並且要指定引數;
4)呼叫類型別的成員變數的建構函式,並指定引數;
在使用初始化成員列表對成員進行初始化的時候,一定要注意初始化順序不是由初始化列表的順序決定的,而是由類中成員變數的宣告順序決定的。所以盡量使用的是constructor體內的member,而不是初始化列表中的member。另外,初始化列表中的專案會被放在constructor中使用者**之前。
C 物件模型 第二章 建構函式語意學
當編譯器需要的時候,default constructor會被合成出來,只執行編譯器所需要的任務 將members適當初始化 編譯器的出來是 如果乙個class a 內含乙個或者乙個以上 member class objects 那麼class a 的每乙個 constructor 必須呼叫每乙個m...
《深度探索C 物件模型》第二章 建構函式語意學
default constructor的構建操作 default constructors在需要的時候被編譯器產生。例 clas foo void foo bar 上述的 情況中,並不會生成乙個deafult constructor。需要注意的地方是 全域性的object內存在被啟用時會清0,而區域...
深度探索C 物件模型 第二章建構函式語意學
在使用c 時,常常會好奇或者抱怨,編譯器為我們做了什麼事呢?為什麼建構函式沒有為我初始化呢?為什麼我還要寫預設建構函式呢?2.1 default constructor 的構造操作 如果沒有宣告預設建構函式,編譯器會在需要的時候幫我們產生出來。為了避免在多個地方被需要導致重複,則編譯器將產生的建構函...