讓自己習慣 C++
- 條款 01 - 視 C++ 為一個聯邦
- 請記住 C++ 高效編程守則視狀況而變化狞尔,取決你用 C++ 的哪一部分湿镀。
- 條款 02 - 盡量以 const赴蝇、enum 滩租、 inline 替換 #define
- 對于單純常量角溃,最好以 const對象 或者 enums 替換 #defines
- 對于形似函數的宏(macros) 颗圣,最好改用 inlines 函數替換 #defines
- 條款 03 - 盡可能使用 const
- 將某些東西聲明為 const 可幫助編譯偵測出錯誤用法喳钟。 const 可被施加于于任何作用域內的對象、函數參數在岂、函數返回類型奔则、成員函數本體。
- 編譯器強制實施 bitwise constness蔽午,但你編寫程序時應該使用“概念上的常量性” conceptual constness易茬。
- 當 const 和 non-const 成員函數有著實質等價的實現時,令 non-const 版本調用 const 版本可避免代碼重復及老。
- 條款 04 - 確定對象被使用前已初始化
- 為內置對象進行手工初始化抽莱,因為C++不保證初始化它們。
- 構造函數最好使用成員初值列(member initialization list)骄恶,而不要在構造函數本體內使用賦值操作食铐。初值列列出的成員變量,其排列次序應該和它們在 class 中聲明的次序相同僧鲁。
- 為免除 “跨編譯單元之初始化次序” 問題璃岳,請以 local static 對象替換 non-static 對象。