本書的特點是實例豐富,重點突出,敘述深入淺出,分析問題透徹,既有完整的語法,又有大量的實例,突出程序設計的思想和方法,將C語言程序設計和C++程序設計有機地統(tǒng)一。特別適合作為計算機學科各應用型本科、?频腃語言程序設計和C++語言程序設計教材,也可作為其它理工科各專業(yè)的教材,也適合作為相關技術人員的自學參考書。
中原工學院院長、教授、碩士生導師。教育部高等學校計算機科學與技術專業(yè)教學指導分委員會專家工作組成員,中國計算機學會教育專委委員,河南計算機學會常務理事,河南省計算機安全保密學會常務理事,河南省高等學校計算機教育研究會理事。
第1章 類和對象 1
1.1 從C到C++ 3
1.1.1 C++的誕生 3
1.1.2 C++對C的擴充 3
1.1.3 面向對象和面向過程的區(qū)別 9
1.1.4 命名空間 12
1.2 面向對象程序設計的基本概念 17
1.2.1 類 17
1.2.2 對象 18
1.2.3 封裝與數據隱藏 18
1.2.4 繼承 18
1.2.5 多態(tài)性 19
1.2.6 消息 19
1.3 類和對象的定義 19
1.3.1 類的定義 20
1.3.2 成員函數的定義 23
1.3.3 類對象的定義 26
1.3.4 對象成員的訪問 27
1.3.5 類對象的內存分配 32
1.3.6 this指針 33
1.4 構造函數和析構函數 35
1.4.1 構造函數的定義 35
1.4.2 構造函數的重載 38
1.4.3 帶默認參數的構造函數 40
1.4.4 析構函數 42
1.4.5 拷貝構造函數和默認拷貝
構造函數 43
1.5 綜合應用舉實例 48
習題1 50
第2章 類和對象的進一步應用 55
2.1 對象的進一步應用 57
2.1.1 堆對象 57
2.1.2 對象數組 57
2.1.3 類對象作為成員 59
2.1.4 面向對象程序中的常量 62
2.2 靜態(tài)成員 65
2.2.1 靜態(tài)數據成員 65
2.2.2 靜態(tài)成員函數 67
2.3 友元函數和友元類 71
2.3.1 友元函數 71
2.3.2 友元類 75
2.4 string類 77
2.4.1 char型字符串 77
2.4.2 string型字符串定義 77
2.4.3 string類構造函數 78
2.4.4 string類成員函數 79
2.5 綜合應用實例 82
習題2 86
第3章 繼承與派生 91
3.1 繼承與派生的基礎知識 93
3.1.1 繼承與派生的基本概念 93
3.1.2 派生類的聲明方式 94
3.1.3 派生類的構成 97
3.2 類的繼承方式 98
3.2.1 公有繼承 98
3.2.2 私有繼承 100
3.2.3 保護繼承 102
3.2.4 繼承方式的總結和比較 102
3.3 派生類的構造函數與析構函數 103
3.3.1 簡單派生類的構造函數 104
3.3.2 析構函數 105
3.3.3 復雜派生類構造函數和析構
函數 106
3.3.4 派生友元類 109
3.4 基類對象與派生類對象的相互
轉換 110
3.5 多重繼承 112
3.5.1 多重繼承的定義 112
3.5.2 多重繼承中的二義性問題 114
*3.6 虛繼承和虛基類 119
3.6.1 虛繼承和虛基類的定義 119
3.6.2 虛基類及其派生類構造函數
執(zhí)行順序 122
3.7 C++ 11新特性之繼承構造函數和
委派構造函數 124
3.7.1 繼承構造函數 124
3.7.2 委派構造函數 125
3.8 綜合應用實例 126
習題3 139
第4章 多態(tài)性 147
4.1 多態(tài)性的概念 149
4.2 運算符重載 149
4.2.1 運算符重載概述 149
4.2.2 運算符重載的實現 150
4.2.3 單目運算符重載 151
4.2.4 雙目運算符重載 153
4.2.5 賦值運算符重載 156
4.2.6 下標運算符[ ]重載 159
4.2.7 關系運算符重載 161
4.2.8 類型轉換運算符重載 163
4.2.9 函數對象 164
4.3 聯編和虛函數 165
4.3.1 靜態(tài)聯編和動態(tài)聯編 165
4.3.2 虛函數的引入 165
4.3.3 虛函數的定義 168
4.3.4 動態(tài)聯編的工作機制 170
4.3.5 虛析構函數 171
4.4 純虛函數和抽象類 173
4.4.1 純虛函數 173
4.4.2 抽象類 173
4.5 綜合應用實例 176
習題4 181
第5章 輸入/輸出流 183
5.1 輸入/輸出流的基本概念 185
5.1.1 從C語言的輸入/輸出函數
到C++的輸入/輸出流 185
5.1.2 流的概念及流類庫 186
5.1.3 流的深入探討 187
5.2 面向標準設備的輸入/輸出流 188
5.2.1 標準流對象 188
5.2.2 標準輸入/輸出流的
格式化 189
5.2.3 用流成員函數實現輸入/
輸出 195
5.3 面向文件的輸入/輸出流 197
5.3.1 文件流類與文件流對象 197
5.3.2 文件的打開和關閉 198
5.3.3 文本文件的輸入/輸出
(讀/寫) 200
5.3.4 二進制文件的輸入/輸出
(讀/寫) 202
5.3.5 文件的隨機訪問 204
5.4 面向內存的字符串流 206
5.5 自定義數據類型的輸入/輸出 210
5.6 綜合應用實例 211
習題5 216
第6章 異常處理 219
6.1 異常的概念 221
6.1.1 錯誤處理的復雜性 221
6.2 異常處理機制 222
6.2.1 異常處理機制的組成 222
6.2.2 異常處理的實現 222
6.3 異常處理規(guī)范 227
6.4 標準庫中的異常類 229
6.5 C++11引入的異常處理 230
6.6 綜合應用實例 231
習題6 236
第7章 模板 237
7.1 模板的概念 239
7.2 函數模板 239
7.2.1 函數模板語法 240
7.2.2 函數模板實例化 241
7.2.3 函數模板中模板參數隱式
轉換產生的錯誤 243
7.2.4 用戶定義的參數類型 245
7.2.5 函數模板和模板函數 247
7.2.6 使用函數模板需要注意的
問題 247
7.3 類模板 248
7.3.1 類模板的語法 249
7.3.2 類模板實例化 250
7.3.3 類模板的派生和繼承 258
7.3.4 使用類模板的注意事項 260
7.4 C++11標準的模板新內容 261
7.4.1 模板的右尖括號 261
7.4.2 別名模板 261
7.4.3 函數模板的默認參數 262
7.4.4 變長參數 264
7.5 綜合應用實例 266
習題7 271
第8章 標準模板庫(STL)的介紹及應用 273
8.1 標準模板庫(STL)的概念 275
8.1.1 什么是STL 275
8.1.2 STL的組成部分 275
8.1.3 STL對C++的影響 276
8.2 容器 276
8.2.1 容器簡介 276
8.2.2 容器的結構 277
8.2.3 容器的使用 278
8.3 迭代器 284
8.3.1 輸入迭代器 285
8.3.2 輸出迭代器 285
8.3.3 前向迭代器 286
8.3.4 雙向迭代器 287
8.3.5 隨機存取迭代器 287
8.3.6 迭代器的使用 287
8.4 算法 288
8.4.1 算法和函數對象 288
8.4.2 算法分類介紹 289
8.5 綜合應用實例 293
習題8 296
第9章 面向對象程序設計實例 297
9.1 圖書管理系統(tǒng)需求分析 299
9.1.1 需求分析的任務 299
9.1.2 圖書管理系統(tǒng)需求描述 299
9.1.3 圖書管理系統(tǒng)需求 299
9.2 圖書管理系統(tǒng)需求模型 300
9.2.1 圖書管理系統(tǒng)用例圖 300
9.2.2 圖書管理系統(tǒng)用例規(guī)約 301
9.3 圖書管理系統(tǒng)設計 308
9.3.1 分析類 308
9.3.2 順序圖 308
9.3.3 設計類圖 309
9.3.4 系統(tǒng)結構設計 310
9.4 圖書管理系統(tǒng)的實現 311
9.4.1 類的定義 311
9.4.2 類的實現 313
9.4.3 用戶界面設計 322
9.4.4 系統(tǒng)主函數 323
9.4.5 系統(tǒng)管理員功能模塊 325
9.4.6 普通管理員功能 328
習題9 331
附錄A 常用容器與算法介紹 332
A.1 常用容器 332
A.1.1 向量(vector) 332
A.1.2 列表(list) 334
A.1.3 雙隊列(deque) 336
A.1.4 棧(stack) 339
A.1.5 隊列(queue) 339
A.2 常用算法 340
A.2.1 非修正算法 340
A.2.2 修正算法 341
A.2.3 排序算法 343
A.2.4 數值計算算法 344
附錄B C++新特性 345
附錄C C/C++跨平臺開源開發(fā)環(huán)境——
Code::Blocks 351
參考文獻 356