讓自己習慣 C++
- 條款 01 - 視 C++ 為一個聯(lián)邦
- 請記住 C++ 高效編程守則視狀況而變化,取決你用 C++ 的哪一部分。
- 條款 02 - 盡量以 const、enum 、 inline 替換 #define
- 對于單純常量,最好以 const對象 或者 enums 替換 #defines
- 對于形似函數(shù)的宏(macros) ,最好改用 inlines 函數(shù)替換 #defines
- 條款 03 - 盡可能使用 const
- 將某些東西聲明為 const 可幫助編譯偵測出錯誤用法。 const 可被施加于于任何作用域內(nèi)的對象、函數(shù)參數(shù)、函數(shù)返回類型、成員函數(shù)本體。
- 編譯器強制實施 bitwise constness,但你編寫程序時應該使用“概念上的常量性” conceptual constness。
- 當 const 和 non-const 成員函數(shù)有著實質(zhì)等價的實現(xiàn)時,令 non-const 版本調(diào)用 const 版本可避免代碼重復。
- 條款 04 - 確定對象被使用前已初始化
- 為內(nèi)置對象進行手工初始化,因為C++不保證初始化它們。
- 構(gòu)造函數(shù)最好使用成員初值列(member initialization list),而不要在構(gòu)造函數(shù)本體內(nèi)使用賦值操作。初值列列出的成員變量,其排列次序應該和它們在 class 中聲明的次序相同。
- 為免除 “跨編譯單元之初始化次序” 問題,請以 local static 對象替換 non-static 對象。