天天看點

成員函數初始化清單

1、何時必須用成員初始化清單

a)如果這個成員是個引用
b)如果是個const類型成員
c)如果你這個類是繼承一個基類,并且基類中有構造函數,這個構造函數裡邊還有參數。
d)如果你的成員變量類型是某個類類型,而這個類的構造函數帶參數時;
           

2、使用初始化清單的優勢(提高效率)

除了必須用初始化清單的場合,我們用初始化清單還有什麼其他目的? 有,就是提高程式運作效率。
對于類類型成員變量xobj放到初始化清單中能夠比較明顯的看到效率的提升
但是如果是個簡單類型的成員變量 比如 int m_test,其實放在初始化清單或者放在函數體裡效率差别不大;
           

3、初始化清單細節探究

a)初始化清單中的代碼可以看作是被編譯器安插到構造函數體中的,隻是這些代碼有些特殊;

b)這些代碼 是在任何使用者自己的構造函數體代碼之前被執行的。是以大家要區分開構造函數中的

使用者代碼 和 編譯器插入的 初始化所屬的代碼。

c)這些清單中變量的初始化順序是 定義順序,而不是在初始化清單中的順序。

不建議在初始化清單中 進行 兩個 都在初始化清單中出現的成員之間的初始化

以上内容是在學習kuangxiang老師的課程所得

繼續閱讀