C++ 編程慣用法-高級程序員常用方法和技巧 (C++ Strategies and Tactics) C++编程惯用法——高级程序员常用方法和技巧(异步图书) (C和C++实务精选)
Robert B. Murray
已絕版
買這商品的人也買了...
-
$990$891 -
$620$527 -
$179$170 -
$940$700 -
$301C++ 項目開發全程實錄
-
$658大規模 C++ 程序設計
-
$407C++數據結構與演算法(第4版國外電腦科學經典教材)
-
$1,200$948 -
$199C++ 編程風格(修訂版)
-
$680$612 -
$980$882 -
$199C++必知必會
-
$227C++泛型:STL原理和應用(電腦系列教材)
-
$301C++多線程編程實戰
-
$410$390 -
$790$616 -
$580$458 -
$208電腦數學與數學文化
-
$580$452 -
$594$564 -
$230這就是搜索引擎:核心技術詳解
-
$69$60 -
$68$68 -
$520$390 -
$880$695
相關主題
商品描述
<內容簡介>
在Robert B.Murray所著的《C++編程慣用法——高級程序員常用方法和技巧》中,C++專家Robert B. Murray與我們分享了他寶貴的經驗和建議,以幫助初中級C++程序員得到進一步的提高。
《C++編程慣用法——高級程序員常用方法和技巧》總共分為11章,先後介紹了抽象、類、句柄、繼承、多重繼承、考慮繼承的設計、模板的高級用法、重用、異常以及向C++的移植等相關的諸多話題。在書中,作者大量採用了實際開發中的代碼作為示例,向讀者展示了那些有用的編程策略,並對那些有害的做法進行了警示。為了幫助讀者更好地理解,在每一章結束前,在該章中介紹過的主要內容都被放到了一個列表中,此外,書中還給出了一些問題來激勵讀者們進行更多的思考和討論。
《C++編程慣用法——高級程序員常用方法和技巧》適合具有一定C++編程經驗的程序員和項目經理閱讀,也適合對C++編程的高級主題感興趣的讀者參考。
<目錄>
第1章 抽象 1
1.1 有關電話號碼的抽象模型 3
1.2 抽象模型間的關係 5
1.3 請考慮邊界條件 10
1.4 使用CRC卡片來輔助設計 10
1.5 小結 11
1.6 問題 11
第2章 類 13
2.1 構造函數 13
2.2 賦值 21
2.3 公用數據 23
2.4 隱式類型轉換 27
2.5 操作符重載:成員或非成員? 33
2.6 重載、默認值以及省略符 35
2.7 Const 37
2.8 返回值為引用 44
2.9 靜態對象的構造 44
2.10 小結 46
2.11 問題 46
第3章 句柄 49
3.1 一個String類 49
3.2 使用計數器來避免多份拷貝 51
3.3 避免進行重編譯:Cheshire Cat 56
3.4 使用句柄來隱藏設計 58
3.5 多種實現 59
3.6 作為對象的句柄 63
3.7 綜述 63
3.8 小結 63
3.9 問題 64
第4章 繼承 67
4.1 is-a關係 67
4.2 公有繼承 72
4.3 私有繼承 73
4.4 保護型繼承 75
4.5 與基類抽象的一致性 75
4.6 純虛函數 78
4.7 有關繼承的細節和陷阱 80
4.8 小結 83
4.9 問題 84
第5章 多重繼承 85
5.1 作為交集的多重繼承 85
5.2 虛基類 89
5.3 一些有關多重繼承的細節問題 93
5.4 小結 95
5.5 問題 95
第6章 考慮繼承的設計 97
6.1 被保護的接口 97
6.2 我們的設計是否應該考慮到繼承? 101
6.3 一些為繼承所做的設計的例子 105
6.4 結論 111
6.5 小結 111
6.6 問題 111
第7章 模板 113
7.1 模板類Pair 115
7.2 一些有關模板的細節 117
7.3 模板的實例化 118
7.4 智能指針 120
7.5 作為模板參數的表達式 126
7.6 模板函數 128
7.7 小結 131
7.8 問題 132
第8章 模板的高級用法 135
8.1 使用了模板的容器類 135
8.2 示例:Block 137
8.3 有關Block的設計細節 140
8.4 帶有迭代器的容器:List 144
8.5 迭代器的設計細節 151
8.6 性能上的考慮 154
8.7 對模板參數的限制 157
8.8 模板特化 159
8.9 小結 165
8.10 問題 166
第9章 重用 169
9.1 發現和獲得 170
9.2 健壯性 171
9.3 內存管理 177
9.4 可選的內存分配方案 179
9.5 傳遞參數給operator new 183
9.6 管理外部資源 185
9.7 尋找有關內存的bug 185
9.8 名字衝突 190
9.9 性能 194
9.10 不要去猜想,而應該度量! 194
9.11 演算法 195
9.12 動態內存分配中的瓶頸 196
9.13 內嵌 201
9.14 Tiemann法則 203
9.15 小結 204
9.16 問題 205
第10章 異常 207
10.1 一個負面的聲明 207
10.2 為什麼需要異常? 209
10.3 一個異常的例子 210
10.4 異常只應該用來表述異常情況 211
10.5 理解異常 213
10.6 責任評估 213
10.7 設計異常對象 215
10.8 小結 218
10.9 問題 218
第11章 向C++移植 221
11.1 選擇使用C++ 221
11.2 採用C++ 223
11.3 設計和實現 224
11.4 開發一個堅實的基礎 227
11.5 相關的思考 227
11.6 小結 227
11.7 問題 228
1.1 有關電話號碼的抽象模型 3
1.2 抽象模型間的關係 5
1.3 請考慮邊界條件 10
1.4 使用CRC卡片來輔助設計 10
1.5 小結 11
1.6 問題 11
第2章 類 13
2.1 構造函數 13
2.2 賦值 21
2.3 公用數據 23
2.4 隱式類型轉換 27
2.5 操作符重載:成員或非成員? 33
2.6 重載、默認值以及省略符 35
2.7 Const 37
2.8 返回值為引用 44
2.9 靜態對象的構造 44
2.10 小結 46
2.11 問題 46
第3章 句柄 49
3.1 一個String類 49
3.2 使用計數器來避免多份拷貝 51
3.3 避免進行重編譯:Cheshire Cat 56
3.4 使用句柄來隱藏設計 58
3.5 多種實現 59
3.6 作為對象的句柄 63
3.7 綜述 63
3.8 小結 63
3.9 問題 64
第4章 繼承 67
4.1 is-a關係 67
4.2 公有繼承 72
4.3 私有繼承 73
4.4 保護型繼承 75
4.5 與基類抽象的一致性 75
4.6 純虛函數 78
4.7 有關繼承的細節和陷阱 80
4.8 小結 83
4.9 問題 84
第5章 多重繼承 85
5.1 作為交集的多重繼承 85
5.2 虛基類 89
5.3 一些有關多重繼承的細節問題 93
5.4 小結 95
5.5 問題 95
第6章 考慮繼承的設計 97
6.1 被保護的接口 97
6.2 我們的設計是否應該考慮到繼承? 101
6.3 一些為繼承所做的設計的例子 105
6.4 結論 111
6.5 小結 111
6.6 問題 111
第7章 模板 113
7.1 模板類Pair 115
7.2 一些有關模板的細節 117
7.3 模板的實例化 118
7.4 智能指針 120
7.5 作為模板參數的表達式 126
7.6 模板函數 128
7.7 小結 131
7.8 問題 132
第8章 模板的高級用法 135
8.1 使用了模板的容器類 135
8.2 示例:Block 137
8.3 有關Block的設計細節 140
8.4 帶有迭代器的容器:List 144
8.5 迭代器的設計細節 151
8.6 性能上的考慮 154
8.7 對模板參數的限制 157
8.8 模板特化 159
8.9 小結 165
8.10 問題 166
第9章 重用 169
9.1 發現和獲得 170
9.2 健壯性 171
9.3 內存管理 177
9.4 可選的內存分配方案 179
9.5 傳遞參數給operator new 183
9.6 管理外部資源 185
9.7 尋找有關內存的bug 185
9.8 名字衝突 190
9.9 性能 194
9.10 不要去猜想,而應該度量! 194
9.11 演算法 195
9.12 動態內存分配中的瓶頸 196
9.13 內嵌 201
9.14 Tiemann法則 203
9.15 小結 204
9.16 問題 205
第10章 異常 207
10.1 一個負面的聲明 207
10.2 為什麼需要異常? 209
10.3 一個異常的例子 210
10.4 異常只應該用來表述異常情況 211
10.5 理解異常 213
10.6 責任評估 213
10.7 設計異常對象 215
10.8 小結 218
10.9 問題 218
第11章 向C++移植 221
11.1 選擇使用C++ 221
11.2 採用C++ 223
11.3 設計和實現 224
11.4 開發一個堅實的基礎 227
11.5 相關的思考 227
11.6 小結 227
11.7 問題 228