原文連結:
線上手冊
第一章 從C轉向C++
條款1:盡量用const和inline而不用#define
條款2:盡量用而不用
條款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++的認識