作 者:(美)安德魯·凱尼格,(美)芭芭拉·摩爾 著 黃曉春 譯
定 價:89
出 版 社:人民郵電出版社
出版日期:2020年08月01日
頁 數:356
裝 幀:平裝
ISBN:9787115521262
聆聽大師教誨,掌握編程精髓。1.基於作者在知名技術雜志發表的技術文章、世界各地發表的演講以及斯坦福大學的課程講義整理、寫作而成。2.有名技術伉儷十年編程生涯的真知灼見。3.本書重點關注的是一些重要的C++思想和編程技巧,旨在讓讀者理解C++編程中的一些原理(why),而不僅僅是工作機制(how),無論你是否是C++編程專家,都會在本書中發現重要的與C++編程有關的技巧和思考。4.C++之父 Bjarne Stroustrup 傾力推薦。本書涵蓋了如下內容:涵蓋了廣泛的C++思想和技等
●第0章序幕1
0.1第一次嘗試1
0.2不用類來實現4
0.3為什麼用C更簡單5
0.4一個更大的例子5
0.5小結6
第一篇動機
第1章為什麼我用C9
1.1問題9
1.2歷史背景10
1.3自動軟件發布10
1.4進入C13
1.5重復利用的軟件17
1.6後記18
第2章為什麼用C工作19
2.1小項目的成功19
2.2抽像21
2.3機器應該為人服務23
第3章生活在現實世界中25
第二篇類和繼承
第4章類設計者的核查表31
第5章代理類39
5.1問題39
5.2經典解決方案40
5.3虛復制函數41
5.4定義代理類42
5.5小結44
第6章句柄:第一部分45
6.1問題45
6.2一個簡單的類46
6.3綁定到句柄47
6.4獲取對像48
6.5簡單的實現48
6.6引用計數型句柄49
6.7寫時復制51
6.8討論52
第7章句柄:第二部分55
7.1回顧56
7.2分離引用計數57
7.3對引用計數的抽像58
7.4存取函數和寫時復制61
7.5討論61
第8章一個面向對像程序範例63
8.1問題描述63
8.2面向對像的解決方案64
8.3句柄類67
8.4擴展1:新操作69
8.5擴展2:增加新的節點類型72
8.6反思73
第9章一個課堂練習的分析(上)75
9.1問題描述75
9.2接口設計77
9.3補遺79
9.4測試接口80
9.5策略81
9.6方案81
9.7圖像的組合85
9.8小結87
第10章一個課堂練習的分析(下)89
10.1策略89
10.2體驗設計的靈活性102
10.3小結105
第11章什麼時候不應當使用虛函數107
11.1適用的情況107
11.2不適用的情況108
11.3析構函數很特殊113
11.4小結114
第三篇模板
第12章設計容器類117
12.1包含什麼117
12.2復制容器意味著什麼118
12.3怎樣獲取素121
12.4怎樣區分讀和寫121
12.5怎樣處理容器的增長123
12.6容器支持哪些操作124
12.7怎樣設素的類型124
12.8容器和繼承125
12.9設計一個類似數組的類126
第13章訪問容素131
13.1模擬指針131
13.2獲取數據132
13.3遺留問題135
13.4指向const Array的Pointer139
13.5有用的增強操作140
第14章迭代器145
14.1完成Pointer類145
14.2什麼是迭代器148
14.素149
14.4刪除容器150
14.5其他設計考慮151
14.6討論151
第15章序列153
15.1技術狀況153
15.2基本的傳統觀點154
15.3增加一些額外操作159
15.4使用範例162
15.5再增加一些166
15.6請你思考167
第16章作為接口的模板169
16.1問題169
16.2第一個例子170
16.3分離迭代方式170
16.4遍歷任意類型172
16.5增加其他類型173
16.6將存儲技術抽像化174
16.7實證177
16.8小結178
第17章模板和泛型算法179
17.1一個特例180
17.2素類型180
17.3推遲計數181
17.4地址獨立性183
17.5查找非數組184
17.6討論185
第18章泛型迭代器187
18.1一個不同的算法187
18.2需求的分類189
18.3輸入迭代器190
18.4輸出迭代器190
18.5前向迭代器191
18.6雙向迭代器191
18.7隨機存取迭代器192
18.8是繼承嗎193
18.9性能193
18.10小結194
第19章使用泛型迭代器195
19.1迭代器類型196
19.2虛擬序列196
19.3輸出流迭代器199
19.4輸入流迭代器200
19.5討論204
第20章迭代器配接器205
20.1一個例子205
20.2方向不對稱性207
20.3一致性和不對稱性208
20.4自動反向209
20.5討論211
第21章函數對像213
21.1一個例子213
21.2函數指針216
21.3函數對像218
21.4函數對像模板219
21.5隱藏中間類型220
21.6一種類型包羅萬像221
21.7實現222
21.8討論224
第22章函數配接器225
22.1為什麼是函數對像225
22.2用於內建操作符的函數對像226
22.3綁定者(Binders)227
22.4更深入地探討228
22.5接口繼承229
22.6使用這些類230
22.7討論231
第四篇庫
第23章日常使用的庫235
23.1問題235
23.2理解問題:第1部分237
23.3實現:第1部分237
23.4理解問題:第2部分239
23.5實現:第2部分240
23.6討論242
第24章一個庫接口設計實例243
24.1復雜問題244
24.2優化接口245
24.3溫故知新246
24.4編寫代碼247
24.5小結249
第25章庫設計就是語言設計251
25.1字符串251
25.2內存耗盡252
25.3復制255
25.4隱藏實現257
25.5缺省構造函數259
25.6其他操作260
25.7子字符串262
25.8小結263
第26章語言設計就是庫設計265
26.1抽像數據類型265
26.2庫和抽像數據類型266
26.3內存分配269
26.4按成員賦值(memberwise assignment)和初始化270
26.5異常處理272
26.6小結272
第五篇技術
第27章自己跟蹤自己的類275
27.1設計一個跟蹤類275
27.2創建死代碼278
27.3生成對像的審計跟蹤279
27.4驗證容器行為281
27.5小結286
第28章在簇中分配對像287
28.1問題287
28.2設計方案287
28.3實現290
28.4加入繼承292
28.5小結293
第29章應用器、操縱器和函數對像295
29.1問題295
29.2一種解決方案297
29.3另一種不同的解決方案298
29.4多個參數299
29.5一個例子301
29.6簡化302
29.7思考303
29.8歷史記錄、參考資料和致謝304
第30章將應用程序庫從輸入輸出中分離出來305
30.1問題305
30.2解決方案1:技巧加蠻力306
30.3解決方案2:抽像輸出307
30.4解決方案3:技巧而無蠻力309
30.5評論311
第六篇總結
第31章通過復雜性獲取簡單性315
31.1世界是復雜的315
31.2復雜性變得隱蔽316
31.3計算機也是一樣316
31.4計算機解決實際問題317
31.5類庫和語言語義318
31.6很難使事情變得容易319
31.7抽像和接口320
31.8復雜度的守恆321
第32章說了Hello world後再做什麼323
32.1找當地的專家323
32.2選一種工具包並適應它324
32.3C的某些部分是必需的324
32.4C的其他部分不是必需的325
32.5給自己設一些問題327
32.6小結329
附錄Koenig和Moo夫婦訪談331
本書基於作者在知名技術雜志發表的技術文章、世界各地發表的演講以及斯坦福大學的課程講義整理、寫作而成,融聚了作者10多年C++程序生涯的真知灼見。本書分為6篇,共32章,分別對C++語言的歷史和特點、類和繼承、STL與泛型編程、庫的設計等幾大技術話題進行了詳細而深入的討論,細微之處幾乎涵蓋了C++所有的設計思想和技術細節。本書通過精心挑選的實例,向讀者傳達優選的程序設計方法和理念。本書適合有一定經驗的C++程序員閱讀學習,可以幫助他們提升技術能力,成為C++程序設計的高手。