條款1:視C++爲一個語言聯邦編程
條款2:儘可能以const、enum、inline替換#define安全
條款3:儘量使用const函數
條款4:肯定對象使用前已先被初始化學習
條款5:瞭解C++默認編寫並調用哪些函數this
條款6:若不想使用編譯器自動生成的函數,就該明確拒絕.net
條款7:爲多態基類聲明virtual析構函數設計
條款8:別讓異常逃離析構函數指針
條款9:毫不在構造和析構過程當中調用virtual函數對象
條款10:令operator=返回一個reference to *thisblog
條款11:在operator=中實現「自我賦值」
條款12:複製對象時勿忘其每一部分
條款13:以對象管理資源
條款14:在資源管理類中當心coping行爲
條款15:在資源管理類中提供對原始資源的訪問
條款16:成對使用new和delete時要採起相同形式
條款17:以獨立語句將newed對象置入智能指針
條款18:讓接口容易被正確使用,不容易被誤用
條款19:設計class猶如設計type
條款20:寧以pass-by-reference-to-const替換pass-by-value
條款21:必須返回對象時,別妄想返回其reference
條款22:將成員變量聲明爲private
條款23:寧以non-member、non-friend替換member函數
條款24:若全部參數皆須要類型轉換,請爲此採用non-member函數
條款25:考慮寫出一個不拋出異常的swap函數
條款26:儘量延後變量定義式的出現時間
條款27:儘可能少作轉型動做
條款28:避免返回handles指向對象內部成分
條款29:爲「異常安全」而努力是值得的
條款30:透徹瞭解inlining的裏裏外外
條款31:將文件間的編譯依存關係降至最低
條款32:肯定你的public繼承塑模出is-a關係
條款33:避免遮掩繼承而來的名稱
條款34:區分接口繼承和實現繼承
條款35:考慮virtual函數之外的其餘選擇
條款36:毫不從新定義繼承而來的non-virtual函數
條款37:毫不要從新定義繼承而來的缺省參數值
條款38:經過複合塑模樹has-a 或「根據某物實現出」
條款39:明智而審慎的使用private繼承
條款40:明智而審慎的使用多重繼承
條款41:瞭解隱式接口和編譯期多態
條款42:瞭解typename的雙重意義
條款43:學習處理模板化基類內的名稱
條款44:將與參數無關的代碼抽離templates
條款45:運用成員函數模板接受全部兼容類型
條款46:須要類型轉換時請爲模板定義非成員函數
條款47:請使用traits class表現類型信息
條款48:認識template元編程
條款49:瞭解new-handler的行爲
條款50:瞭解new和delete的合理替換時機
條款51:編寫new和delete時需固守常規
條款52:寫了placement new也要寫placement delete
條款53:不要輕忽編譯器的警告
條款54:讓本身熟悉包括TR1在內的標準程序庫
條款55:讓本身熟悉Boost