C++編程指南通過大量編程實(shí)例的講解,幫助學(xué)生快速的學(xué)習(xí)C++的特性和技術(shù)。本書主要分為四部分,第一部分:第1~4章是基本內(nèi)容,包括了,創(chuàng)建C++程序的基本工具和技術(shù)、分支和循環(huán)等流程控制語句、內(nèi)置數(shù)據(jù)類型和它們的基本屬性等、C++的各種運(yùn)算符及其應(yīng)用;第二部分:第5~8章是指針和動態(tài)內(nèi)存的內(nèi)容,包括了,指針和引用、動態(tài)變量、動態(tài)變量的擁有者和生命期、類和結(jié)構(gòu)等。第三部分:第9和10章是面向?qū)ο蟮某绦蛟O(shè)計(jì)內(nèi)容,包括,類的設(shè)計(jì)、抽象與封裝、繼承和多態(tài)性等。第四部分:第11~13章是較深的高級內(nèi)容,包括了模板、容器類和
吳曉梅 擁有十多年軟件開發(fā)和教學(xué)經(jīng)驗(yàn),在數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)等方向具有一定研究,并且熱衷于C++的培訓(xùn)和教學(xué),已出版多本學(xué)術(shù)專著和教材。
第1章您的第一個(gè)C++程序1
1.1C++使用的優(yōu)勢1
1.2Hello World!1
1.3C++的構(gòu)建流程4
1.4C++關(guān)鍵字5
1.5預(yù)處理指令7
1.5.1include7
1.5.2宏指令8
1.5.3條件編譯9
1.6輸入/輸出(I/O)語句12
1.7函數(shù)16
1.7.1傳遞參數(shù)17
1.7.2重載和默認(rèn)參數(shù)19
1.8測試:編寫個(gè)人信息登記應(yīng)用程序22
1.9總結(jié)23
第2章控制流程24
2.1簡介24
2.2ifelse語句25
2.3switchcase語句29
2.4循環(huán)語句32
2.4.1循環(huán)簡介32
2.4.2while循環(huán)32
2.4.3dowhile循環(huán)34
2.4.4for循環(huán)37
2.4.5基于范圍的for循環(huán)38
2.5break/continue語句41
2.5.1break語句41
2.5.2continue語句43
2.6測試:使用循環(huán)和條件語句創(chuàng)建數(shù)字猜謎游戲46
2.7總結(jié)47
第3章內(nèi)置數(shù)據(jù)類型48
3.1簡介48
3.2數(shù)據(jù)類型修飾符49
3.3內(nèi)置數(shù)據(jù)類型49
3.4數(shù)組50
3.4.1數(shù)組的初始化51
3.4.2訪問數(shù)組中的元素53
3.4.3數(shù)組的內(nèi)存54
3.4.4多維數(shù)組56
3.5向量58
3.5.1訪問向量中的元素58
3.5.2初始化和修改向量中的元素60
3.6類和結(jié)構(gòu)62
3.6.1類62
3.6.2結(jié)構(gòu)63
3.6.3訪問修飾符64
3.7構(gòu)造函數(shù)/析構(gòu)函數(shù)66
3.8測試:編寫注冊應(yīng)用程序69
3.9總結(jié)71
目錄深度學(xué)習(xí)C++第4章C++的運(yùn)算符72
4.1簡介72
4.2算術(shù)運(yùn)算符73
4.3關(guān)系運(yùn)算符76
4.3.1相等運(yùn)算符77
4.3.2比較運(yùn)算符78
4.4一元運(yùn)算符81
4.4.1負(fù)號(-)運(yùn)算符81
4.4.2遞增(++)和遞減(--)運(yùn)算符82
4.5賦值運(yùn)算符83
4.6邏輯運(yùn)算符85
4.7運(yùn)算符重載87
4.8位運(yùn)算符89
4.9測試:Fizz Buzz91
4.10小結(jié)92
第5章指針和引用94
5.1簡介94
5.2內(nèi)存地址95
5.2.1指針95
5.2.2指向數(shù)組的指針98
5.2.3指針的算術(shù)運(yùn)算99
5.2.4指向指針103
5.3引用105
5.4指針和引用作為函數(shù)參數(shù)107
5.5指向類或結(jié)構(gòu)的指針109
5.6引用作為函數(shù)的參數(shù)111
5.7測試:使用指針和引用進(jìn)行字符串?dāng)?shù)組的操作114
5.8小結(jié)114
第6章動態(tài)變量115
6.1簡介115
6.2動態(tài)變量116
6.3動態(tài)數(shù)組121
6.4動態(tài)變量的7個(gè)問題123
6.4.1問題1:在創(chuàng)建動態(tài)變量之前,使用指向動態(tài)變量的指針123
6.4.2問題2:刪除一個(gè)動態(tài)變量之后,再使用動態(tài)變量125
6.4.3問題3:創(chuàng)建了一個(gè)動態(tài)變量,但忘記刪除126
6.4.4問題4:覆蓋一個(gè)指向動態(tài)變量的指針126
6.4.5問題5:多次刪除一個(gè)動態(tài)變量128
6.4.6問題6:以delete,而不是delete\[\]刪除一個(gè)動態(tài)數(shù)組129
6.4.7問題7:以delete\[\],而不是delete刪除一個(gè)動態(tài)變量130
6.5動態(tài)容器131
6.5.1鏈表131
6.5.2二叉搜索樹132
6.6遞歸數(shù)據(jù)結(jié)構(gòu)133
6.6.1在一個(gè)遞歸數(shù)據(jù)結(jié)構(gòu)中訪問項(xiàng)133
6.6.2查找項(xiàng)134
6.6.3添加項(xiàng)135
6.6.4刪除動態(tài)項(xiàng)136
6.7測試:創(chuàng)建類實(shí)例的二叉搜索樹143
6.8小結(jié)144
第7章動態(tài)變量所有權(quán)和生命周期145
7.1簡介145
7.2資源獲取初始化(RAII)146
7.3管理數(shù)據(jù)結(jié)構(gòu)中動態(tài)變量149
7.4智能指針154
7.4.1unique_ptr﹤﹥154
7.4.2make_unique()157
7.4.3unique_ptr﹤﹥作為一個(gè)類成員變量158
7.4.4函數(shù)參數(shù)和返回值中的unique_ptr﹤﹥160
7.4動態(tài)變量的共享所有權(quán)161
7.5make_shared()164
7.6測試:使用動態(tài)變量存儲一本書的單詞166
7.7小結(jié)167
第8章類與結(jié)構(gòu)168
8.1簡介168
8.2類與結(jié)構(gòu)168
8.3聯(lián)合169
8.4構(gòu)造函數(shù)171
8.4.1默認(rèn)構(gòu)造函數(shù)171
8.4.2參數(shù)化構(gòu)造函數(shù)173
8.4.3復(fù)制構(gòu)造函數(shù)175
8.5淺復(fù)制或深復(fù)制176
8.6賦值運(yùn)算符183
8.7析構(gòu)函數(shù)186
8.8測試:創(chuàng)建一個(gè)視頻剪輯(VideoClip)類186
8.9小結(jié)187
第9章面向?qū)ο蟮脑?88
9.1簡介188
9.2類與面向?qū)ο蟮某绦蛟O(shè)計(jì)(OOP)188
9.2.1單一責(zé)任原則190
9.2.2封裝192
9.2.3Getters和Setters196
9.3返回值或引用202
9.3.1返回值202
9.3.2返回引用202
9.4常量205
9.4.1返回const引用205
9.4.2const函數(shù)206
9.5抽象207
9.6測試:一個(gè)基本的RPG作戰(zhàn)系統(tǒng)211
9.7小結(jié)212
第10章面向?qū)ο蟮母呒壴瓌t213
10.1簡介213
10.2繼承214
10.2.1單一繼承214
10.2.2多重繼承217
10.2.3訪問修飾符與繼承221
10.3虛擬函數(shù)223
10.4純虛擬函數(shù)/抽象類225
10.5多態(tài)性227
10.6類型轉(zhuǎn)換230
10.6.1靜態(tài)強(qiáng)制轉(zhuǎn)換231
10.6.2動態(tài)強(qiáng)制轉(zhuǎn)換232
10.6.3C類型的強(qiáng)制轉(zhuǎn)換232
10.7測試:編寫百科全書應(yīng)用程序234
10.8小結(jié)235
第11章模板237
11.1簡介237
11.2創(chuàng)建模板的語法237
11.2.1模板類238
11.2.2多個(gè)模板參數(shù)240
11.2.3模板函數(shù)241
11.2.4模板的專門化245
11.2.5創(chuàng)建模板的注意事項(xiàng)246
11.3隊(duì)列249
11.3.1隊(duì)列簡介249
11.3.2在隊(duì)列中實(shí)現(xiàn)構(gòu)造函數(shù)和析構(gòu)函數(shù)251
11.3.3動態(tài)內(nèi)存253
11.3.4調(diào)整內(nèi)存大小256
11.3.5壓入和彈出256
11.3.6測試257
11.4測試:創(chuàng)建一個(gè)通用的堆棧259
11.5小結(jié)260
第12章容器和迭代器261
12.1簡介261
12.2字符串261
12.2.1字符串構(gòu)造函數(shù)262
12.2.2為字符串賦值263
12.2.3字符串相關(guān)操作264
12.3迭代器266
12.4向量269
12.4.1向量構(gòu)造函數(shù)269
12.4.2向量的賦值270
12.4.3向量相關(guān)操作273
12.4.4搜索向量273
12.5映射/無序映射278
12.5.1構(gòu)造映射和無序映射278
12.5.2映射和無序映射的操作279
12.6集合/多集合283
12.6.1構(gòu)造函數(shù)284
12.6.2集合的操作286
12.7隊(duì)列/堆棧287
12.8測試:將RPG戰(zhàn)斗轉(zhuǎn)換為使用標(biāo)準(zhǔn)庫容器288
12.9小結(jié)289
第13章C++中的異常處理290
13.1簡介290
13.2應(yīng)對突發(fā)(或意外)事件291
13.3拋出異常291
13.4未捕獲的異常292
13.5捕獲異常295
13.6展開堆棧299
13.7資源獲取初始化(RAII)和異常處理300
13.8測試:處理異常303
13.9小結(jié)304
附錄測試參考答案306
第1章您的第一個(gè)C++程序306
測試:編寫個(gè)人信息登記應(yīng)用程序——參考答案306
第2章控制流程308
測試:使用循環(huán)和條件語句創(chuàng)建數(shù)字猜謎游戲——參考答案308
第3章內(nèi)置數(shù)據(jù)類型310
測試:編寫注冊應(yīng)用程序——參考答案310
第4章C++的運(yùn)算符314
測試:Fizz Buzz——參考答案314
第5章指針和引用316
測試:使用指針和引用進(jìn)行字符串?dāng)?shù)組的操作——參考答案316
第6章動態(tài)變量319
測試:創(chuàng)建類實(shí)例的二叉搜索樹——參考答案319
第7章動態(tài)變量所有權(quán)和生命周期322
測試:使用動態(tài)變量存儲一本書的單詞——參考答案322
第8章類與結(jié)構(gòu)329
測試:創(chuàng)建一個(gè)視頻剪輯(VideoClip)類——參考答案329
第9章面向?qū)ο蟮脑?38
測試:一個(gè)基本的RPG作戰(zhàn)系統(tǒng)——參考答案338
第10章面向?qū)ο蟮母呒壴瓌t349
測試:編寫百科全書應(yīng)用程序——參考答案349
第11章模板353
測試:創(chuàng)建一個(gè)通用的堆棧——參考答案353
第12章容器和迭代器356
測試:將RPG戰(zhàn)斗轉(zhuǎn)換為使用標(biāo)準(zhǔn)庫容器——參考答案356
第13章C++中的異常處理363
測試:處理異!獏⒖即鸢363