導讀(Introduction) 基礎議題(Basics)
條款1:仔細區別 pointers 和 references 條款2:最好使用 C++ 轉型運算子條款3:絕對不要以 polymorphically(多型)方式來處理陣列條款4:非必要不提供 default constructor 運算子(Operators) 條款5:對自定的型別轉換函式保持警覺條款6:區別 increment/decrement 運算子的前序(prefix)和後序(postfix)型式條款7:千萬不要多載化 &&, ||, 和 , 運算子條款8:瞭解各種不同意義的 new 和 delete 異常情況(Exceptions)條款9:利用 destructors 避免遺失資源條款10:在 constructors 內阻止資源的遺失(resource leaks)條款11:禁止異常訊息(exceptions)流出 destructors 之外條款12:瞭解「丟出一個 exception」與「傳遞一個參數」或「呼叫一個虛擬函式」之間的差異條款13:以 by reference 方式捕捉 exceptions 條款14:明智運用 exception specifications 條款15:瞭解異常處理(exception handling)的成本效率(Efficiency) 條款16:謹記 80-20 法則條款17:考慮使用 lazy evaluation 條款18:分期攤還預期的計算成本條款19:瞭解暫時性物件的來源條款20:協助完成「傳回值最佳化(RVO)」條款21:利用多載化技術(overload)避免隱式型別轉換條款22:考慮以運算子的複合型式(op=)取代其獨身型式(op)條款23:考慮使用其他程式庫條款24:瞭解 virtual functions、multiple inheritance、virtual base classes、runtime type identification 所需的成本技術(Techniques,又稱 Idioms 或 Pattern)條款25:將 constructor 和 non-member functions 虛擬化條款26:限制某個 class 所能產生的物件數量條款27:要求(或禁止)物件產生於 heap 之中條款28:Smart Pointers(精靈指標) 條款29:Reference counting(參用計數) 條款30:Proxy classes(替身類別、代理人類別) 條款31:讓函式根據一個以上的物件型別來決定如何虛擬化雜項討論(Miscellany) 條款32:在未來時態下發展程式條款33:將非尾端類別(non-leaf classes)設計為抽象類別(abstract classes)條款34:如何在同一個程式中結合 C++ 和 C 條款35:讓自己習慣使用標準的 C++ 語言