C Primer 讀書筆記 第12章 類

2021-06-04 17:25:31 字數 1857 閱讀 6245

1. 建構函式一般應用乙個建構函式初始化列表來初始化物件的資料成員。

2. 建構函式不能為const。

3. 可以認為夠在函式分兩個階段執行:(1)初始化階段;(2)普通計算階段,計算階段由建構函式函式體中所有語句組成。

4. 不管成員是否在建構函式初始化列表中顯示初始化,類型別的資料成員總是在初始化階段初始化,初始化發生在計算階段開始之前。

5. 使用建構函式初始化列表的版本初始化資料成員,沒有定義初始化列表的建構函式版本在建構函式函式體中對資料成員賦值。

6. 沒有預設建構函式的類型別的成員,以及const或引用型別的成員,不管是哪種型別,都必須在建構函式初始化列表中進行初始化。

7. 建構函式初始化列表中成員初始化的次序為成員定義的次序。所以應按照宣告的次序來編寫建構函式初始化列表,盡可能避免使用乙個成員來初始化其他成員。

8. 沒有宣告為explicit的單形參建構函式可以隱式的將形參轉換為該類型別的物件,當建構函式宣告為explicit時則不能隱式轉換,該關鍵字只能用於類的建構函式宣告上,在類的定義體外部所做的定義不再重複它。

通常,除非有明顯的理由想要定義隱式轉換,否則,單形參建構函式應該為explicit。

9. 常量成員函式(將const加在形參表後面)不能修改物件的資料成員值。const必須同時出現在宣告和定義中。

10. 如果是struct定義的類,則在第乙個訪問標號之前的成員是公有的,而class定義的類,這些成員是私有的。

11. 可以在類定義體內指定乙個成員為inline,作為其宣告的一部分,也可以在類定義體外部函式定義上指定inline。不在類定義體內定義的inline成員函式,其定義通常應放在有類定義的同一標頭檔案中。

12. 不完全型別(只宣告而不定義乙個類)不能定義該類的物件。只能用於定義指向該型別的指標或者引用,或者宣告(而不是定義)使用該型別作為形參型別或返回型別的函式。

13. 類可以有自身型別的指標或引用型別的資料成員,不能具有自身型別的資料成員,但可以有自身型別的static資料成員。

14. 普通的非const成員函式,this的型別是乙個指向類型別的const指標,而const成員函式中this型別是乙個指向const類型別物件的const指標。const成員函式只能返回*this作為乙個const引用。

15. 基於乙個成員函式是否為const可以過載乙個成員函式;同樣的,基於乙個指標形參是否指向const也可以過載乙個函式。

16. mutable放在成員宣告之前表示該資料成員是可變的,其永遠不能為const,甚至當它是const物件的成員也是如此,const物件和const成員函式都可以改變mutable成員的值。

17. 如果函式在類定義體之外定義,則用於返回型別的名字在類作用域外,如果返回型別使用由類定義的型別,則必須使用完全限定名。

18. 友元(friend)機制允許乙個類將對其非公有成員的訪問授予指定的函式或類,friend關鍵字只能出現在類定義的內部。通常將友元宣告成組的放在類定義的開始或結尾。

19. 必須先定義包含成員函式的類,才能將成員函式設為友元。

20. 友元宣告將已命名的類或成員函式引入到外圍作用域中。友元函式可以在類的內部定義,該函式的作用域擴充套件到包圍該類定義的作用域。

21. static成員函式能直接訪問類的static成員,不能直接訪問非static成員。

22. static成員不是任何物件的一部分,所以static成員函式不能宣告為const,也不能宣告為需函式。

23. static資料成員必須在類定義體外部定義(正好一次),不是通過類建構函式初始化,應該在定義的時候初始化。保證物件正好定義一次的最好辦法,就是將static資料成員的定義放在包含類的非內聯成員函式定義的檔案中。

24. const static成員可以在類的定義體中進行初始化,初始化後資料成員仍必須在類的定義體之外進行定義,但這次不必指明其初始值。

c primer讀書筆記 第5章 語句

1.switch語句 case關鍵字和它對應的值一起被稱為case標籤,case標籤必須是整型常量表示式。int val 42 char ch while cin ch switch的執行流程有可能跨過某些case標籤。如果程式跳轉到了某個特定的case,則switch結構中該case標籤前的部分會...

《C Primer》讀書筆記 第6章 函式

傳引用呼叫 void resrt int i int j 42 reset j j採用傳引用呼叫,他的值被改變 cout j endl 輸出0 陣列形參 void print const int a void print const int a void print const int a 10 儘...

《C Primer》讀書筆記 第5章 語句

前面一些簡單的知識點略過 case關鍵字和它對應的值一起被稱為case標籤。case標籤必須是整形常量表示式,另外要注意的是bool char short 列舉型別也算是整形。switch語句中如果某個case標籤匹配成功,將從該標籤開始往後執行所有case分支。每個case語句分支後都應該有bre...