目錄
條款1:視c++為乙個語言聯盟
條款2:盡量以 const、enum、inline 替換 #define
條款3:盡可能使用 const
條款4:確定物件使用前已先被初始化
1、c++ 分為四個次語言,c、object-oriented c++、template c++、stl。
2、四個語言都有自己的規約,使用不同次語言時遵守不同的守則會使得開發更高效。
3、對於內建型別而言,pass-by-value效率高於pass-by-reference。對於使用者自定義型別而言,pass-by-reference效率高於pass-by-value。
1、定義常量時盡量使用 const、enum 代替 #define。
2、定義不可取址、不可引用的常量時盡量使用 enum 代替 #define。
3、定義類似函式的巨集時盡量使用 inline 代替 #define。
4、在防止標頭檔案重複包含時依然使用 #define。
1、如果 const 出現在 * 號左邊,表示被指物是常量。如果 const 出現在 * 號的右邊,表示指標自身是常量。
2、const widget *pw 和 widget const *pw 兩種形式效果一樣,都是指向常量 widget 物件。
3、const std::vector::iterator 等價於 t* const,std::vector::const_iterator 等價於 const t*。
4、const 成員函式可以使用 mutable 擺脫 const 的約束。
5、當 const 和 non-const 成員函式有著實質的等價實現時,令 non-const 版本呼叫 const 版本可避免**重複。
1、為內建型別進行手動初始化,因為 c++ 不保證初始化它們。
2、建構函式最好使用初始化成員列表,而不要在建構函式內使用賦值操作。初始化列表列出的初始化順序應該和類體中成員變數定義順序保持一致。
3、為避免 「跨編譯單元之初始化次序」 問題,請使用 "local static" 物件替換 "non-local static" 物件。
持續更新......
effective c 讓自己習慣c
一 忠告 a 對於常量,用const和 enum 代替define b 對於形似函式,用inline代替 define 二 盡量替換掉define的原因 a define a 1.63出錯時,報 1.63 出錯 const int a 1.63 出錯時,報 a出錯。顯然報變數名出錯更加容易除錯 b ...
Effective C 讓自己習慣C
c 的四個語言層次 c c 是以c為基礎的。基本資料型別 語句 預處理器 陣列 指標等統統來自c。oject oriented c 物件導向這一特性包含了 類,封裝 宣告與實現相分離 繼承 多繼承和多重繼承 建構函式 析構函式 拷貝建構函式 拷貝賦值運算子 多型 靜態繫結 函式過載,動態繫結 虛函式...
找工作之Effective C
1 盡量以const,enum,inline替換 define 2 const出現在星號左邊,表明指物是常量 出現在星號右邊,指標是常量。3 mutable修辭可以突破const限制,在被const修辭的函式裡面也能被修改 4 運用const成員函式實現non const版本可以避免 重複 5 co...