內容介紹
對c++程式設計師來說,iso/ansi c++標準的問世標誌著一個新紀元的開始。c++標準為程式設計提供了很多新的便利和可能,但要想在如此眾多的信息中挖掘到其中的精髓,現實世界中的程式設計師缺少足夠的時間。本書針對一定的主題,為程式設計師提供了簡明扼要的指導,從而將學習時間和疑惑減至最少。本書內容包括泛型程式設計與c++標準庫、最佳化與性能、異常安全議題及技術、繼承與多態、記憶體及資源管理、自由函式與宏等。本書內容全面豐富,論述翔實清晰,作者權威且經驗豐富,是c++程式設計師的必備讀物。
作者介紹
對每一位C++愛好者或C++專業程式設計師來說,Herb Sutter的名字應該不會讓人感到陌生。作為ISO/ANSI C++標準委員會的委員,Herb Sutter不僅是C++程式設計領域公認的專家,還是深受程式設計師喜愛的技術講師和作家。Herb Sutter在網際網路上主持的Guru of the Week專欄廣受歡迎,幾乎成為每一位C++程式設計師的網上必讀物。本書就是Guru of the Week的最新精華總結。作品目錄
目錄回到頂部↑與大師面對面(譯序) ⅸ
序 ?
前言 ?ⅰ
泛型程式設計與c++標準庫 1
條款1:流 1
條款2:predicates,之一:remove()刪除了什麼? 7
條款3:predicates,之二:狀態帶來的問題 12
條款4:可擴充的模板:使用繼承還是traits? 22
條款5:typename 40
條款6:容器、指針和“不是容器的容器” 45
條款7:使用vector和deque 56
條款8:使用set和map 65
條款9:等同的代碼嗎? 72
條款10:模板特殊化與重載 78
條款11:mastermind 84
最佳化與性能 100
條款12:內聯 100
條款13:緩式最佳化,之一:一個普通的舊式string 104
條款14:緩式最佳化,之二:引入緩式最佳化 108
條款15:緩式最佳化,之三:疊代器與引用 113
.條款16:緩式最佳化,之四:多執行緒環境 125
異常安全議題及技術 139
條款17:構造函式失敗,之一:對象生命期 139
條款18:構造函式失敗,之二:吸收異常? 144
條款19:未捕獲的異常 153
條款20:未管理指針存在的問題,之一:參數求值 160
條款21:未管理指針存在的問題,之二:使用auto_ptr? 164
條款22:異常安全與類的設計,之一:複製賦值 171
條款23:異常安全與類的設計,之二:繼承 181
繼承與多態 187
條款24:為什麼要使用多繼承? 187
條款25:模擬多繼承 191
條款26:多繼承與連體雙嬰問題 195
條款27:(非)純虛函式 200
條款28:受控的多態 207
記憶體及資源管理 210
條款29:使用auto_ptr 210
條款30:智慧型指針成員,之一:auto_ptr存在的問題 219
條款31:智慧型指針成員,之二:設計valueptr 225
自由函式與宏 239
條款32:遞歸聲明 239
條款33:模擬嵌套函式 245
條款34:預處理宏 256
條款35:宏定義 260
雜項議題 265
條款36:初始化 265
條款37:前置聲明 269
條款38:typedef 271
條款39:名字空間,之一:using聲明和using指令 275
條款40:名字空間,之二:遷徙到名字空間 278
後記 293
附錄a:(在多執行緒環境下)並非最佳化 294
附錄b:單執行緒string實現與多執行緒安全string實現的對比測試結果 313
參考文獻 323
索引 325