C/C++程序設計教程:面向對象分冊(第3版)
內容描述
本書的特點是實例豐富,重點突出,敘述深入淺出,分析問題透徹,既有完整的語法,又有大量的實例,突出程序設計的思想和方法,將C語言程序設計和C++程序設計有機地統一。特別適合作為電腦學科各應用型本科、專科的C語言程序設計和C++語言程序設計教材,也可作為其它理工科各專業的教材,也適合作為相關技術人員的自學參考書。
目錄大綱
第1章類和對象1
1.1從C到C++ 3
1.1.1 C++的誕生3
1.1.2 C++對C的擴充3
1.1.3面向對象和麵向過程的區別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多態性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靜態成員65
2.2.1靜態數據成員65
2.2.2靜態成員函數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虛基類及其派生類構造函數
執行順序122
3.7 C++ 11新特性之繼承構造函數和
委派構造函數124
3.7.1繼承構造函數124
3.7.2委派構造函數125
3.8綜合應用實例126
習題3 139
第4章多態性147
4.1多態性的概念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靜態聯編和動態聯編165
4.3.2虛函數的引入165
4.3.3虛函數的定義168
4.3.4動態聯編的工作機制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異常處理規範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圖書管理系統需求分析299
9.1.1需求分析的任務299
9.1.2圖書管理系統需求描述299
9.1.3圖書管理系統需求299
9.2圖書管理系統需求模型300
9.2. 1圖書管理系統用例圖300
9.2.2圖書管理系統用例規約301
9.3圖書管理系統設計308
9.3.1分析類308
9.3.2順序圖308
9.3.3設計類圖309
9.3.4系統結構設計310
9.4圖書管理系統的實現311
9.4.1類的定義311
9.4.2類的實現313
9.4.3用戶界面設計322
9.4.4系統主函數323
9.4.5系統管理員功能模塊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
附錄CC/C++跨平台開源開發環境——
Code::Blocks 351
參考文獻356
作者介紹
中原工學院院長、教授、碩士生導師。教育部高等學校計算機科學與技術專業教學指導分委員會專家工作組成員,中國計算機學會教育專委委員,河南計算機學會常務理事,河南省計算機安全保密學會常務理事,河南省高等學校計算機教育研究會理事。