C++程式設計——現代方法

C++程式設計——現代方法

《C++程式設計——現代方法》是2019年12月人民郵電出版社出版的圖書,作者是白忠建。

基本介紹

  • 書名:C++程式設計——現代方法
  • 作者:白忠建
  • ISBN:9787115513731
  • 頁數:280頁
  • 定價:59.8元
  • 出版社:人民郵電出版社
  • 出版時間:2019年12月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書以C++ 1y標準為基準,詳細介紹了對象和面向對象技術的概念,並圍繞案例的求解,深入淺出地介紹了面向對象技術的4個核心思想(數據封裝、繼承、多態和泛型編程)在C++中的概念、實現機制和語法、編程方法等,其中包括類和對象、運算符重載、繼承和派生、虛函式和多態性、模板和泛型編程、流庫、多繼承、名字空間和異常處理,使讀者能夠循序漸進地掌握C++的語法以及面向對象程式設計的方法。

圖書目錄

第1章 引論 1
1.1 C++程式概貌 1
1.1.1 編寫第一個C++程式 2
1.1.2 程式釋義 3
1.2 面向對象的基本概念 5
1.2.1 對象 5
1.2.2 面向對象方法的核心概念 8
1.2.3 面向對象分析、設計和程式設計 8
第2章 C++:一個更好的C 10
2.1 基礎類型 10
2.1.1 增強的字面常量 10
2.1.2 bool類型 12
2.1.3 強類型枚舉 12
2.2 地址類型 14
2.2.1 指針類型 14
2.2.2 引用類型 16
2.3 類型自動推導 19
2.3.1 decltype關鍵字 19
2.3.2 auto關鍵字 20
2.4 運算符和表達式 20
2.4.1 C++特有的運算符 20
2.4.2 lambda表達式 23
2.5 控制結構和語句 25
2.6 異常處理及語句 26
2.6.1 異常以及異常拋出 26
2.6.2 try…catch語句 26
2.7 函式 30
2.7.1 函式的類型 30
2.7.2 函式的參數 30
2.7.3 函式的返回值 33
2.7.4 函式重載 37
2.7.5 回調函式 38
2.8 複雜類型聲明的簡化 40
2.9 名字空間 41
2.9.1 名字空間的定義 42
2.9.2 using聲明和using指令 42
2.9.3 嵌套的名字空間 43
第3章 類:面向對象的基石 44
3.1 案例—鍊表的實現 44
3.1.1 案例及其實現 44
3.1.2 案例問題分析 49
3.2 類 49
3.2.1 定義類類型和類對象 49
3.2.2 訪問控制和數據封裝 56
3.2.3 類的靜態成員 60
3.2.4 struct和union 62
3.2.5 聚集與組合 62
3.3 類對象的構造、初始化和析構 63
3.3.1 類的構造函式 64
3.3.2 構造函式重載 67
3.3.3 統一初始化 69
3.3.4 析構函式 70
3.3.5 默認和被刪除的成員函式 71
3.4 案例的完整解決方案 72
3.5 面向對象方法的套用 74
3.5.1 面向對象分析 75
3.5.2 面向對象設計 76
3.5.3 編碼實現 77
第4章 類的高級特性 80
4.1 案例—鍊表類的複製問題 80
4.1.1 案例及其實現 80
4.1.2 案例問題分析 84
4.2 複製控制 85
4.2.1 複製 85
4.2.2 賦值 86
4.2.3 淺複製和深複製 87
4.2.4 轉移對象和轉移語義 90
4.2.5 禁止複製 94
4.3 指向類成員的指針 95
4.4 友元 96
4.4.1 友元函式和友元類 96
4.4.2 友元關係的特性 98
4.5 類的const成員和mutable成員 99
4.5.1 類的const成員 99
4.5.2 類的mutable成員 100
4.6 類中的類型名 100
4.6.1 類中的類類型 100
4.6.2 類中的枚舉類型 101
4.6.3 類中的typedef和using 102
4.6.4 typename關鍵字 102
4.7 案例的完整解決方案 102
第5章 運算符重載 106
5.1 案例分析—complex類及
其常規運算 106
5.1.1 案例及其實現 106
5.1.2 案例問題分析 107
5.2 運算符函式重載 108
5.2.1 重載運算符函式的考慮因素 108
5.2.2 運算符函式重載的一般性規則 112
5.3 常用運算符的重載 114
5.3.1 重載賦值運算符 114
5.3.2 重載算術運算符 115
5.3.3 重載關係運算符 119
5.3.4 重載流式輸入運算符>>和
輸出<<運算符 119
5.4 類型轉換 121
5.4.1 標量類型向類類型轉換 121
5.4.2 類類型向標量類型轉換 122
5.4.3 類類型向類類型轉換 123
5.5 重載特殊運算符 124
5.5.1 下標運算符[] 125
5.5.2 指針運算符*和成員選擇
運算符?> 129
5.5.3 函式調用運算符() 132
第6章 繼承 135
6.1 案例—四邊形家族的類描述 135
6.1.1 案例及其實現 135
6.1.2 案例問題分析 137
6.2 繼承和派生 139
6.2.1 定義基類和派生類 139
6.2.2 繼承的實現機制 141
6.2.3 基類子對象的初始化 142
6.2.4 基類成員的繼承 144
6.2.5 重新定義基類成員 147
6.3 賦值兼容原則 148
6.3.1 派生類和基類對象間的賦值 148
6.3.2 引用作用於派生類和基類對象 148
6.3.3 指針作用於派生類和基類對象 149
6.4 多繼承 150
6.4.1 多繼承的語法 150
6.4.2 虛繼承和虛基類 151
6.4.3 多繼承面臨的其他問題 152
6.5 繼承的前提:正確的分類 153
6.5.1 案例—基於角色的分類 154
6.5.2 案例存在的問題 155
6.5.3 案例的改進方案 156
第7章 多態 159
7.1 案例分析—賦值兼容原則的
進一步套用 159
7.1.1 案例及其實現 159
7.1.2 案例問題分析 160
7.2 多態的概念 161
7.2.1 靜態多態性 161
7.2.2 動態多態性 162
7.3 虛函式:實現多態的關鍵 162
7.3.1 虛函式的聲明和覆蓋 162
7.3.2 虛函式的實現原理 167
7.3.3 虛析構函式 169
7.4 純虛函式和抽象類 170
7.4.1 純虛函式 170
7.4.2 抽象類 171
第8章 模板 174
8.1 案例分析—類型帶來的困擾 174
8.1.1 案例的設計與實現 174
8.1.2 案例問題分析 178
8.2 變數模板 179
8.2.1 定義和使用變數模板 179
8.2.2 變數模板的特化 180
8.3 函式模板 181
8.3.1 定義和使用函式模板 181
8.3.2 函式模板的重載和特化 183
8.3.3 完美轉發 184
8.3.4 摺疊表達式 185
8.4 類模板 187
8.4.1 定義和使用類模板 188
8.4.2 類模板的特化 191
8.4.3 類模板的友元 191
8.4.4 類模板的繼承和派生 192
8.4.5 類模板的變長模板參數 192
8.4.6 類模板性能的改進 194
8.5 模板的別名 196
8.6 traits技術 198
8.6.1 特性萃取 198
8.6.2 類型萃取 200
8.6.3 隨之而來的問題 202
8.7 模板元編程初探 204
8.7.1 模板遞歸 204
8.7.2 奇異遞歸模板模式 205
第9章 容器、疊代器和
泛型算法 207
9.1 案例分析—鍊表類的遍歷 207
9.1.1 案例的設計與實現 208
9.1.2 案例問題分析 209
9.2 容器的疊代器 210
9.2.1 疊代器的結構設計 210
9.2.2 疊代器的實現 211
9.3 泛型算法 217
9.3.1 只用到疊代器的泛型算法 217
9.3.2 帶更多參數的泛型算法 218
9.3.3 唯讀算法和寫算法 220
9.3.4 泛型算法返回值類型的考慮 221
9.3.5 iterator traits 222
9.4 C++標準模板庫STL 224
9.4.1 C++的標準容器類 224
9.4.2 C++的標準泛型算法和
可調用對象 224
9.4.3 C++的標準iterator庫 225
第10章 多執行緒 226
10.1 案例分析—順序執行的局限 226
10.1.1 案例的設計與實現 226
10.1.2 案例問題分析 226
10.2 關鍵概念 227
10.2.1 異步 227
10.2.2 進程和執行緒 227
10.2.3 共享和互斥 228
10.2.4 鎖和死鎖 228
10.3 C++的多執行緒庫 229
10.3.1 頭檔案 229
10.3.2 頭檔案 232
10.3.3 頭檔案 234
10.3.4 頭檔案 236
10.4 多執行緒編程示例 239
10.4.1 系統簡要分析 239
10.4.2 系統設計 240
10.4.3 系統實現 241
第11章 面向對象設計的原則 244
11.1 單一職責原則 244
11.2 開閉原則 247
11.3 聚集與組合復用原則 248
11.4 里氏替換原則 248
11.5 依賴倒置原則 249
11.6 接口隔離原則 251
11.7 最少知識原則 252
第12章 C++程式設計案例 257
12.1 案例描述 257
12.2 系統分析 258
12.2.1 MVC設計模式
簡介 258
12.2.2 系統的用例模型 259
12.3 系統設計 259
12.3.1 系統體系結構設計 259
12.3.2 對象設計 260
12.3.3 用戶界面設計 263
12.4 系統實現 263
附錄A C++關鍵字 274
附錄B 常用運算符的優先權和
結合性 275
附錄C 使用不同的C++編譯器 276
C.1 使用GNU GCC for Linux 276
C.2 使用MinGW 277
C.3 使用Visual Studio 2017(VS 2017) 277
C.4 使用Clang 278
參考文獻 280

相關詞條

熱門詞條

聯絡我們