More effective C++ List

 最近正在讀者本書,感覺受益匪淺。在這裏把標題列出來,一目瞭然。其實,每一條包含很多內容。值得長考。

3. 基礎議題..................................................................................................................... 12
3.1 ITEM M1:指標與引用的區別............................................................................ 12
3.2 ITEM M2:儘量使用C++風格的類型轉換........................................................ 14
3.3 ITEM M3:不要對陣列使用多態........................................................................ 19
3.4 ITEM M4:避免無用的缺省構造函數................................................................ 21
4. 運算符......................................................................................................................... 26
4.1 ITEM M5:謹慎定義類型轉換函數.................................................................... 26
4.2 ITEM M6:自增(INCREMENT)、自減(DECREMENT)操作符字首形式與尾碼形式
的區別............................................................................................................................... 33
4.3 ITEM M7:不要重載“&&",“||", 或“,"................................................... 36
4.4 ITEM M8:理解各種不同含義的NEW和DELETE ................................................. 38
5. 異常............................................................................................................................. 44
5.1 ITEM M9:使用析構函數防止資源泄漏........................................................... 45
5.2 ITEM M10:在構造函數中防止資源泄漏......................................................... 50
5.3 ITEM M11:禁止異常資訊(EXCEPTIONS)傳遞到析構函數外..................... 59
5.4 ITEM M12:理解“拋出一個異常"與“傳遞一個參數"或“調用一個虛函
數"間的差異.................................................................................................................. 62
5.5 ITEM M13:通過引用(REFERENCE)捕獲異常................................................ 69
5.6 ITEM M14:審慎使用異常規格(EXCEPTION SPECIFICATIONS)............................. 73
5.7 ITEM M15:瞭解異常處理的系統開銷.............................................................. 79
6. 效率............................................................................................................................. 81
6.1 ITEM M16:牢記80-20 準則(80-20 RULE)............................................... 82
6.2 ITEM M17:考慮使用LAZY EVALUATION(懶惰計算法) ................................ 84
6.3 ITEM M18:分期攤還期望的計算...................................................................... 92
6.4 ITEM M19:理解臨時物件的來源...................................................................... 97
6.5 ITEM M20:協助完成返回值優化...................................................................... 99
6.6 ITEM M21:通過重載避免隱式類型轉換....................................................... 103
6.7 ITEM M22:考慮用運算符的賦值形式(OP=)取代其單獨形式(OP)... 105
6.8 ITEM M23:考慮變更程式庫............................................................................. 108
6.9 ITEM M24:理解虛擬函數、多繼承、虛基類和RTTI所需的代價............. 111
7. 技巧(TECHNIQUES,又稱IDIOMS 或PATTERN) ........................................ 119
7.1 ITEM M25:將構造函數和非成員函數虛擬化............................................... 119
7.2 ITEM M26:限制某個類所能産生的物件數量............................................... 126
7.3 ITEM M27:要求或禁止在堆中産生物件....................................................... 141
7.4 ITEM M28:靈巧(SMART)指標...................................................................... 155
7.5 ITEM M29:引用計數......................................................................................... 178
7.6 ITEM M30:代理類.............................................................................................. 208
7.7 ITEM M31:讓函數根據一個以上的物件來決定怎麼虛擬.......................... 221
8. 雜項........................................................................................................................... 244
8.1 ITEM M32:在未來時態下開發程式................................................................ 244
8.2 ITEM M33:將非尾端類設計爲抽象類............................................................ 249
8.3 ITEM M34:如何在同一程式中混合使用C++和C ......................................... 260
8.4 ITEM M35:讓自己習慣使用標準C++語言.................................................... 265

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章