條款 1:盡量用 const 和 inline 而不用#define
條款 2:盡量用而不用<stdio.h>
條款 3:盡量用 new 和 delete 而不用 malloc 和 free
條款 4:盡量使用 C++風格的注釋
條款 5:對應的 new 和 delete 要采用相同的形式
條款 6:析構函數里對指針成員調用 delete
條款 7:預先準備好內存不夠的情況
條款 8. 寫 operator new 和 operator delete 時要遵循常規
條款 9. 避免隱藏標準形式的 new
條款 10. 如果寫了 operator new 就要同時寫 operator delete
條款 11: 為需要動態分配內存的類聲明一個拷貝構造函數和一個賦值操作符
條款 12: 盡量使用初始化而不要在構造函數里賦值
條款 13: 初始化列表中成員列出的順序和它們在類中聲明的順序相同
條款 14: 確定基類有虛析構函數
條款 15: 讓 operator=返回*this 的引用
條款 16: 在 operator=中對所有數據成員賦值
條款 17: 在 operator=中檢查給自己賦值的情況
條款 18: 爭取使類的接口完整并且最小
條款 19: 分清成員函數,非成員函數和友元函數
條款 20: 避免 public 接口出現數據成員
條款 21: 盡可能使用 const
條款 22: 盡量用“傳引用”而不用“傳值”
條款 23: 必須返回一個對象時不要試圖返回一個引用
條款 24: 在函數重載和設定參數缺省值間慎重選擇
條款 25: 避免對指針和數字類型重載
條款 26: 當心潛在的二義性
條款 27: 如果不想使用隱式生成的函數就要顯式地禁止它
條款 28: 劃分全局名字空間
條款 29: 避免返回內部數據的句柄
條款 30: 避免這樣的成員函數:其返回值是指向成員的非 const 指針或引用,
但成員的訪問級比這個函數要低
條款 31: 千萬不要返回局部對象的引用,也不要返回函數內部用 new 初始化的
指針的引用
條款 32: 盡可能地推遲變量的定義
條款 33: 明智地使用內聯
條款 34: 將文件間的編譯依賴性降至最低
條款 35: 使公有繼承體現 "是一個" 的含義
條款 36: 區分接口繼承和實現繼承
條款 37: 決不要重新定義繼承而來的非虛函數
條款 38: 決不要重新定義繼承而來的缺省參數值
條款 39: 避免 "向下轉換" 繼承層次
條款 40: 通過分層來體現 "有一個" 或 "用...來實現"
條款 41: 區分繼承和模板
條款 42: 明智地使用私有繼承
條款 43: 明智地使用多繼承
條款 44: 說你想說的;理解你所說的
條款 45: 弄清 C++在幕后為你所寫、所調用的函數
條款 46: 寧可編譯和鏈接時出錯,也不要運行時出錯
條款 47: 確保非局部靜態對象在使用前被初始化
條款 48: 重視編譯器警告
條款 49: 熟悉標準庫
條款 50: 提高對 C++的認識