第1章C++編程基礎1
1.1程序語言的發(fā)展1
1.1.1機器語言1
1.1.2匯編語言1
1.1.3高級語言2
1.1.4C語言2
1.1.5C++語言2
1.2C++語言簡介3
1.2.1程序=數據+操作3
1.2.2數據類型3
1.2.3對數據的操作——表達式3
1.2.4數據操作的流程——語句控制3
1.2.5操作的復用——函數3
1.2.6數據和操作的封裝——類3
1.2.7類的復用——派生和繼承3
1.2.8軟件模塊4
1.3如何學習C++語言4
1.3.1勤能生巧4
1.3.2風格與規(guī)范4
1.4用Visual C++開發(fā)程序4
1.4.1程序——從概念到運行4
1.4.2Visual C++簡介5
1.4.3建立應用程序5
1.5程序風格7
1.5.1效率與風格7
1.5.2注釋——整理編程思路、增加程序的可讀性7
1.5.3注釋的形式8
1.5.4命名13
1.5.5編排14
1.5.6簡單性原則15
1.5.7一致性原則16
小結17
第2章基本C++程序結構18
2.1C++語言成分18
2.1.1字符18
2.1.2數字、標識符和表達式18
2.1.3語法19
2.1.4結構19
2.1.5模塊19
2.2程序的基本結構19
2.2.1注釋20
2.2.2編譯預處理命令#include20
2.2.3main函數20
2.2.4C++程序的執(zhí)行過程21
2.2.5終端輸出22
2.3變量和簡單表達式23
2.3.1main函數的返回值24
2.3.2常數和常量24
2.3.3變量27
2.3.4運算符與簡單表達式29
2.4表達式和語句31
2.4.1返回值31
2.4.2嵌套31
2.4.3優(yōu)先級第3章數據類型36
3.1數據及操作36
3.2C++數據類型36
3.3數據類型37
3.3.1數據在計算機中的存儲37
3.3.2基本數據類型的修飾符號38
3.3.3基本數據類型39
3.3.4C++中的特殊字符41
3.3.5字符串42
3.3.6數據類型長度的確定42
3.3.7數據類型的選擇43
3.4構造數據類型44
3.4.1數組44
3.4.2枚舉44
3.4.3結構46
3.5數據輸入46
小結48
第4章程序流程控制50
4.1復合語句50
4.2程序的執(zhí)行流程51
4.3分支流程51
4.3.1if語句52
4.3.2switch語句55
4.4循環(huán)流程57
4.4.1while語句58
4.4.2do…while語句62
4.4.3for循環(huán)65
4.5設計舉例68
4.6其他控制語句73
4.6.1break語句與多重循環(huán)73
4.6.2goto語句74
4.6.3條件運算符?:74
小結75
第5章函數77
5.1函數機制77
5.2函數定義78
5.2.1函數名79
5.2.2函數參數79
5.2.3返回類型80
5.2.4函數體80
5.3函數調用82
5.4程序運行時的內存分布83
5.5函數調用的實現機制84
5.6函數的參數與返回值88
5.7函數參數的傳遞方式88
5.7.1指針參數88
5.7.2引用參數90
5.7.3數組參數92
5.7.4數組參數對實在參數的改變94
5.7.5字符串作為參數94
5.7.6多維數組作為參數96
5.7.7main( )的參數97
5.8函數返回值98
5.9const參數、const返回值與const函數100
5.9.1const參數100
5.9.2const返回值101
5.10作用域102
5.10.1局部作用域103
5.10.2文件作用域104
5.10.3覆蓋問題106
5.11函數原型109
5.11.1函數作用域109
5.11.2函數原型110
5.11.3函數原型的作用110
5.11.4使用自己定義的函數原型115
5.12特殊的函數用法115
5.12.1內聯函數115
5.12.2內聯函數的作用115
5.12.3內聯函數使用的限制116
5.12.4函數重載116
5.12.5使用函數重載的條件117
5.12.6重載函數的使用方法117
5.12.7函數的默認參數118
5.12.8遞歸函數120
5.12.9設計遞歸程序的方法121
5.12.10遞歸程序的優(yōu)缺點123
5.12.11函數模板123
5.12.12模板的實例化125
5.12.13支持多種類型的模板126
5.12.14使用模板的注意事項127
小結127
第6章簡單程序設計129
6.1程序開發(fā)過程129
6.2文件之間的信息共享130
6.2.1外部變量130
6.2.2外部函數132
6.2.3靜態(tài)全局變量與靜態(tài)函數133
6.3頭文件135
6.3.1#include指令135
6.3.2頭文件內容136
6.3.3預編譯指令138
6.4生存期141
6.4.1生存期與內存142
6.4.2初始化問題143
6.4.3局部靜態(tài)變量143
小結144
第7章數組與結構146
7.1數組146
7.1.1數組的定義146
7.1.2數組元素的訪問147
7.1.3數組復制149
7.1.4數組下標越界149
7.1.5數組元素的初始化150
7.1.6多維數組151
7.1.7多維數組元素的訪問151
7.1.8多維數組元素的初始化156
7.1.9字符串數組156
7.1.10數組應用舉例158
7.2結構162
7.2.1結構類型的定義162
7.2.2結構成員的訪問163
7.2.3結構變量的初始化163
7.2.4結構的賦值164
7.2.5結構成員166
7.2.6結構嵌套167
小結167
第8章指針及其引用169
8.1指針的定義與初始化169
8.2指針的賦值與使用171
8.3指針的數據類型174
8.3.1void指針*176
8.3.2NULL指針值176
8.4用const來限定指針177
8.4.1指向常量的指針177
8.4.2指針常量178
8.4.3指向常量的指針常量178
8.5指針與數組179
8.5.1指針運算181
8.5.2用指針對數組操作183
8.5.3指針與字符串184
8.6動態(tài)內存申請185
8.6.1new與delete186
8.6.2指針與動態(tài)數組189
8.6.3指針與動態(tài)結構194
8.6.4指針小結201
8.7引用的概念201
8.7.1引用的初始化202
8.7.2能夠引用的數據類型203
8.7.3const引用204
8.8指針和引用205
8.9引用的應用206
小結206
第9章面向對象程序方法復用——軟件快速開發(fā)的必由之路218
9.3.3走面向對象的道路218
9.3.4結構化程序設計219
9.3.5面向對象程序設計220
9.4面向對象的分析與設計221
9.4.1面向對象開發(fā)方法的生命周期221
9.4.2面向對象分析221
9.4.3面向對象設計222
9.5面向對象方法與軟件復用222
9.5.1復用級別222
9.5.2復用的好處223
9.5.3面向對象方法對復用的支持223
9.5.4復用技術對面向對象軟件開發(fā)的支持224
9.6面向對象程序設計語言224
小結225
第10章類與對象226
10.1類的定義與使用226
10.2成員的訪問控制227
10.3類的成員函數231
10.3.1成員函數的定義位置231
10.3.2類作用域232
10.3.3內聯成員函數與非內聯成員函數235
10.3.4使用內聯函數的條件236
10.3.5const成員函數238
10.4類定義與頭文件240
10.4.1使用類庫中的類243
10.4.2類與程序結構244
10.5對象的創(chuàng)建與使用245
10.5.1對象的創(chuàng)建245
10.5.2對象作為函數的參數與返回值246
10.6this指針247
10.7類與結構的關系250
10.8舉例252
10.8.1用數組實現的隊列類253
10.8.2用鏈表實現的隊列類259
小結265
第11章構造函數與析構函數267
11.1構造函數和析構函數的意義267
11.2構造函數270
11.2.1重載構造函數270
11.2.2對象構造的幾種方式274
11.2.3構造函數的默認參數274
11.2.4默認構造函數275
11.2.5拷貝構造函數277
11.2.6成員初始化參數表280
11.3析構函數285
小結295
第12章靜態(tài)成員、友元297
12.1靜態(tài)成員297
12.1.1靜態(tài)數據成員與靜態(tài)函數成員298
12.1.2靜態(tài)數據成員的初始化299
12.2友元306
12.2.1友元的說明與使用306
12.2.2使用友元的條件311
12.2.3使用友元的注意事項311
小結313
第13章運算符重載314
13.1可以重載的運算符314
13.2運算符重載的規(guī)則316
13.3常用運算符重載舉例319
13.3.1函數調用運算符的重載320
13.3.2賦值運算符的重載323
13.3.3雙目算術運算符的重載325
13.3.4單目算術運算符的重載327
13.3.5自增自減運算符的重載328
13.4插入抽取運算符的重載337
13.4.1C++的I/O流庫338
13.4.2插入運算符的重載339
13.4.3抽取運算符的重載341
13.5類型轉換函數345
13.5.1構造函數充當類型轉換函數346
13.5.2直接定義類型轉換函數347
13.5.3隱式類型轉換與顯式類型轉換349
小結350
第14章繼承352
14.1單繼承352
14.1.1公有、保護和私有繼承354
14.1.2派生類對象的構造361
14.1.3繼承應用舉例368
14.2多繼承372
14.2.1多繼承的定義373
14.2.2多繼承中的構造函數與析構函數373
14.2.3二義性376
14.2.4虛基類379
14.2.5虛基類的初始化380
14.2.6多繼承的應用381
14.3繼承與類庫381
14.4Visual C++的類庫——MFC382
小結383
自測題答案384
參考文獻421