本書從初學者的角度較全面地介紹了C++的相關知識,較系統地介紹了C++語言的基礎內容。本書包括6 篇共21 章的內容。其中,第1 篇是C++數據表達篇,包括C++入門、變量和數據類型、運算符和表達式以及程序控制結構等;第2 篇是C++面向過程設計篇,包括函數、編譯預處理、數組、指針和構造數據類型等內容;第3 篇是C++面向對象編程篇,主要包括類和對象、繼承、多態、運算符重載和輸入/輸出流等內容;第4 篇主要介紹了C++高級特性,內容包括文件、命名空間和引用與內存管理;第5篇的內容主要是C++編程實踐,主要分析了標準模板庫STL、模板與C++標準庫和異常處理等;最后一篇結合學生成績管理系統開發實例,講解如何使用C++進行實際開發。本書適合沒有編程基礎的C++語言初學者作為入門教程,也可作為大中專院校師生和培訓班的教材,對于C++語言開發的愛好者,本書也有較大的參考價值。
劉蕾,長期從事C、VC程序設計語言的教學工作,并使用C和VC開發了大量的程序,主要有:學校食堂IC卡管理系統;學校信息管理系統(使用VC和MS SQL 2000);達州軍分區點對點視頻會議系統;市民政局局域網即時通信軟件;健身俱樂部會員管理系統;某鉆探公司圖形矢量化系統。
第1 篇 C++數據表達篇
第1 章 C++入門 ............................................................................................................................... 1
1.1 C++概述 ............................................................................................................................... 1
1.1.1 C++的歷史沿革 ...................................................................................................................... 1
1.1.2 C++與面向對象 ...................................................................................................................... 1
1.1.3 從C 語言到C++ ..................................................................................................................... 2
1.2 程序設計方法 ...................................................................................................................... 3
1.2.1 結構化程序設計 ...................................................................................................................... 3
1.2.2 面向對象程序設計 .................................................................................................................. 4
1.2.3 程序設計方法比較 .................................................................................................................. 4
1.3 C++開發環境——Visual C++ 6.0 ....................................................................................... 5
1.3.1 工作區 ..................................................................................................................................... 5
1.3.2 編輯區(Editor Area) ........................................................................................................... 6
1.3.3 輸出窗口(Output Window) ................................................................................................ 6
1.3.4 菜單欄、工具欄、狀態欄 ...................................................................................................... 7
1.4 第一個C++程序——Hello World ....................................................................................... 7
1.4.1 創建源程序 ............................................................................................................................. 7
1.4.2 編譯連接 ................................................................................................................................. 9
1.4.3 調試運行 ................................................................................................................................. 9
1.5 C++源程序組成元素 ......................................................................................................... 10
1.5.1 基本組成 ............................................................................................................................... 10
1.5.2 基本符號 ............................................................................................................................... 11
1.5.3 標識符 ................................................................................................................................... 11
1.5.4 保留字 ................................................................................................................................... 11
1.5.5 分隔符 ................................................................................................................................... 12
1.6 小結 .................................................................................................................................... 12
1.7 習題 .................................................................................................................................... 12
第2 章 變量和數據類型 ................................................................................................................. 16
2.1 常量 .................................................................................................................................... 16
2.1.1 聲明常量 ............................................................................................................................... 16
2.1.2 常量的應用 ........................................................................................................................... 17
2.2 變量 .................................................................................................................................... 19
2.2.1 聲明變量 ............................................................................................................................... 19
2.2.2 變量的命名規則 .................................................................................................................... 19
2.2.3 變量的作用范圍 .................................................................................................................... 20
2.2.4 變量的應用 ........................................................................................................................... 21
2.3 基本數據類型 .................................................................................................................... 22
2.3.1 整型 ....................................................................................................................................... 23
2.3.2 字符型 ................................................................................................................................... 24
2.3.3 浮點型 ................................................................................................................................... 26
2.3.4 布爾型 ................................................................................................................................... 26
2.4 類型轉換 ............................................................................................................................ 27
2.4.1 隱式轉換 ............................................................................................................................... 27
2.4.2 顯式轉換 ............................................................................................................................... 28
2.5 小結 .................................................................................................................................... 29
2.6 習題 .................................................................................................................................... 29
第3 章 運算符和表達式 ................................................................................................................. 32
3.1 運算符 ................................................................................................................................ 32
3.1.1 算術運算符 ........................................................................................................................... 32
3.1.2 賦值運算符 ........................................................................................................................... 34
3.1.3 關系運算符 ........................................................................................................................... 35
3.1.4 邏輯運算符 ........................................................................................................................... 35
3.1.5 條件運算符 ........................................................................................................................... 36
3.1.6 逗號運算符 ........................................................................................................................... 37
3.1.7 位運算符 ............................................................................................................................... 37
3.1.8 sizeof 運算符 ......................................................................................................................... 38
3.1.9 運算符的優先級 .................................................................................................................... 38
3.2 表達式 ................................................................................................................................ 39
3.2.1 算術表達式 ........................................................................................................................... 40
3.2.2 關系表達式 ........................................................................................................................... 40
3.2.3 邏輯表達式 ........................................................................................................................... 41
3.2.4 條件表達式 ........................................................................................................................... 42
3.2.5 賦值表達式 ........................................................................................................................... 43
3.2.6 逗號表達式 ........................................................................................................................... 43
3.3 語句 .................................................................................................................................... 44
3.3.1 語句中的空格........................................................................................................................ 44
3.3.2 空語句 ................................................................................................................................... 45
3.3.3 聲明語句 ............................................................................................................................... 45
3.3.4 賦值語句 ............................................................................................................................... 46
3.4 小結 .................................................................................................................................... 46
3.5 習題 .................................................................................................................................... 46
第4 章 程序控制結構 ..................................................................................................................... 50
4.1 順序結構 ............................................................................................................................ 50
4.1.1 表達式語句 ........................................................................................................................... 50
4.1.2 輸入語句 ............................................................................................................................... 51
4.1.3 輸出語句 ............................................................................................................................... 51
4.1.4 格式控制符 ........................................................................................................................... 52
4.1.5 應用示例 ............................................................................................................................... 55
4.2 選擇結構 ............................................................................................................................ 56
4.2.1 if 語句 .................................................................................................................................... 56
4.2.2 if?else 語句 .......................................................................................................................... 57
4.2.3 多重if…else 語句 ................................................................................................................. 58
4.2.4 switch 語句 ............................................................................................................................ 60
4.2.5 應用示例 ............................................................................................................................... 62
4.3 循環結構 ............................................................................................................................ 64
4.3.1 for 語句 .................................................................................................................................. 64
4.3.2 while 語句 .............................................................................................................................. 65
4.3.3 do?while 語句 ...................................................................................................................... 66
4.3.4 多重循環 ............................................................................................................................... 66
4.3.5 應用示例 ............................................................................................................................... 68
4.4 轉向語句 ............................................................................................................................ 68
4.5 小結 .................................................................................................................................... 70
4.6 習題 .................................................................................................................................... 70
第2 篇 C++面向過程設計篇
第5 章 函數 ..................................................................................................................................... 74
5.1 函數簡介 ............................................................................................................................ 74
5.1.1 函數概述 ............................................................................................................................... 74
5.1.2 定義函數 ............................................................................................................................... 75
5.1.3 應用示例 ............................................................................................................................... 76
5.2 函數參數及原型 ................................................................................................................ 77
5.2.1 函數的參數及返回值 ............................................................................................................ 77
5.2.2 函數原型 ............................................................................................................................... 78
5.2.3 main()函數 ............................................................................................................................. 78
5.2.4 帶參數的main()函數 ............................................................................................................ 80
5.3 調用函數 ............................................................................................................................ 81
5.3.1 函數調用格式........................................................................................................................ 81
5.3.2 傳值調用 ............................................................................................................................... 82
5.3.3 引用調用 ............................................................................................................................... 83
5.3.4 嵌套調用 ............................................................................................................................... 84
5.3.5 遞歸調用 ............................................................................................................................... 84
5.3.6 帶默認形參值的函數 ............................................................................................................ 86
5.4 變量的作用域 .................................................................................................................... 86
5.4.1 局部變量 ............................................................................................................................... 87
5.4.2 全局變量 ............................................................................................................................... 88
5.5 函數的作用域 .................................................................................................................... 89
5.6 函數重載 ............................................................................................................................ 90
5.6.1 函數重載的定義 .................................................................................................................... 91
5.6.2 參數類型不同的函數重載 .................................................................................................... 91
5.6.3 參數個數不同的重載函數 .................................................................................................... 92
5.7 小結 .................................................................................................................................... 93
5.8 習題 .................................................................................................................................... 93
第6 章 編譯預處理 ......................................................................................................................... 96
6.1 預處理命令 ........................................................................................................................ 96
6.2 宏 ........................................................................................................................................ 96
6.2.1 宏概述 ................................................................................................................................... 96
6.2.2 不帶參數的宏定義 ................................................................................................................ 97
6.2.3 取消宏 ................................................................................................................................... 98
6.2.4 宏嵌套 ................................................................................................................................. 100
6.2.5 帶參數的宏定義 .................................................................................................................. 100
6.2.6 內聯函數 ............................................................................................................................. 104
6.2.7 宏與函數的區別 .................................................................................................................. 105
6.3 文件包含 .......................................................................................................................... 106
6.3.1 #include 命令 ....................................................................................................................... 106
6.3.2 合理使用文件包含 .............................................................................................................. 107
6.4 條件編譯 .......................................................................................................................... 108
6.4.1 #ifdef 形式 ........................................................................................................................... 108
6.4.2 #ifndef 形式 ......................................................................................................................... 110
6.4.3 #if 形式 ................................................................................................................................ 110
6.5 其他命令 ........................................................................................................................... 111
6.5.1 #error 命令 ........................................................................................................................... 111
6.5.2 #line 命令 ............................................................................................................................ 112
6.6 小結 .................................................................................................................................. 112
6.7 習題 .................................................................................................................................. 112
第7 章 數組 ................................................................................................................................... 115
7.1 聲明數組 .......................................................................................................................... 115
7.1.1 聲明一維數組...................................................................................................................... 115
7.1.2 聲明多維數組...................................................................................................................... 116
7.2 引用數組 .......................................................................................................................... 117
7.2.1 引用一維數組...................................................................................................................... 117
7.2.2 引用多維數組...................................................................................................................... 118
7.3 數組的賦值 ...................................................................................................................... 119
7.3.1 初始化數組 ......................................................................................................................... 119
7.3.2 通過賦值表達式賦值 .......................................................................................................... 121
7.3.3 通過輸入語句賦值 .............................................................................................................. 122
7.3.4 通過循環語句賦值 .............................................................................................................. 122
7.3.5 多維數組的賦值 .................................................................................................................. 124
7.4 字符串 .............................................................................................................................. 124
7.4.1 傳統字符串 ......................................................................................................................... 125
7.4.2 字符數組 ............................................................................................................................. 127
7.5 數組與函數 ...................................................................................................................... 128
7.6 數組應用 .......................................................................................................................... 130
7.6.1 順序查找 ............................................................................................................................. 130
7.6.2 折半查找 ............................................................................................................................. 131
7.6.3 排序 ..................................................................................................................................... 134
7.7 小結 .................................................................................................................................. 136
7.8 習題 .................................................................................................................................. 136
第8 章 指針 ................................................................................................................................... 139
8.1 指針概述 .......................................................................................................................... 139
8.1.1 指針是什么 ......................................................................................................................... 139
8.1.2 定義指針 ............................................................................................................................. 140
8.1.3 指針的初始化...................................................................................................................... 140
8.2 指針的運算 ...................................................................................................................... 142
8.2.1 取地址與取值運算 .............................................................................................................. 142
8.2.2 指針的算術運算 .................................................................................................................. 143
8.2.3 指針的關系運算 .................................................................................................................. 145
8.2.4 指針的賦值運算 .................................................................................................................. 146
8.2.5 void 指針和const 指針 ....................................................................................................... 146
8.3 指針與數組 ...................................................................................................................... 148
8.3.1 訪問數組元素的方法 .......................................................................................................... 148
8.3.2 多維數組元素的訪問 .......................................................................................................... 150
8.3.3 數組指針與指針數組 .......................................................................................................... 151
8.4 指針與函數 ...................................................................................................................... 152
8.4.1 指針作為函數參數 .............................................................................................................. 152
8.4.2 指針型函數 ......................................................................................................................... 154
8.4.3 函數指針 ............................................................................................................................. 155
8.5 指針與字符串 .................................................................................................................. 156
8.6 二級指針 .......................................................................................................................... 157
8.7 小結 .................................................................................................................................. 158
8.8 習題 .................................................................................................................................. 159
第9 章 構造數據類型 ................................................................................................................... 162
9.1 結構體 .............................................................................................................................. 162
9.1.1 結構體概述 ......................................................................................................................... 162
9.1.2 結構體類型說明 .................................................................................................................. 163
9.1.3 定義結構體類型變量 .......................................................................................................... 164
9.1.4 初始化結構體變量 .............................................................................................................. 165
9.1.5 引用結構體成員變量 .......................................................................................................... 167
9.1.6 結構體作為函數參數 .......................................................................................................... 169
9.2 共用體 .............................................................................................................................. 170
9.2.1 共用體類型說明 .................................................................................................................. 170
9.2.2 定義共用體類型變量 .......................................................................................................... 171
9.2.3 引用共用體成員變量 .......................................................................................................... 171
9.3 枚舉 .................................................................................................................................. 173
9.3.1 定義枚舉類型...................................................................................................................... 173
9.3.2 定義枚舉類型變量 .............................................................................................................. 175
9.3.3 引用枚舉類型變量 .............................................................................................................. 176
9.4 類型重定義typedef ......................................................................................................... 177
9.5 位域 .................................................................................................................................. 179
9.5.1 定義位域變量...................................................................................................................... 179
9.5.2 使用位域 ............................................................................................................................. 180
9.6 小結 .................................................................................................................................. 181
9.7 習題 .................................................................................................................................. 182
第3 篇 C++面向對象編程篇
第10 章 類和對象 ........................................................................................................................ 185
10.1 類 .................................................................................................................................... 185
10.1.1 什么是類 ........................................................................................................................... 185
10.1.2 從結構到類 ....................................................................................................................... 186
10.1.3 類的聲明 ........................................................................................................................... 188
10.1.4 類的訪問控制 .................................................................................................................... 189
10.1.5 類的定義 ........................................................................................................................... 191
10.2 對象 ................................................................................................................................ 193
10.2.1 對象概述 ........................................................................................................................... 193
10.2.2 對象數組 ........................................................................................................................... 194
10.3 構造函數 ........................................................................................................................ 196
10.3.1 構造函數的概念 ................................................................................................................ 196
10.3.2 構造函數的聲明和定義 .................................................................................................... 196
10.3.3 構造函數的調用 ................................................................................................................ 198
10.3.4 不帶參數的構造函數 ........................................................................................................ 198
10.3.5 帶有默認參數的構造函數 ................................................................................................ 199
10.3.6 構造函數的重載 ................................................................................................................ 201
10.4 拷貝構造函數 ................................................................................................................ 202
10.4.1 定義拷貝構造函數 ............................................................................................................ 202
10.4.2 調用拷貝構造函數 ............................................................................................................ 203
10.4.3 默認拷貝構造函數 ............................................................................................................ 205
10.5 析構函數 ........................................................................................................................ 206
10.6 友元 ................................................................................................................................ 207
10.6.1 友元函數 ........................................................................................................................... 207
10.6.2 友元成員 ........................................................................................................................... 209
10.6.3 友元類 ............................................................................................................................... 210
10.7 小結 ................................................................................................................................ 212
10.8 習題 ................................................................................................................................ 212
第11 章 繼承 ................................................................................................................................. 216
11.1 繼承與派生 .................................................................................................................... 216
11.1.1 繼承與派生概述 ................................................................................................................ 216
11.1.2 聲明派生類 ........................................................................................................................ 217
11.2 訪問控制 ........................................................................................................................ 217
11.2.1 公有繼承 ............................................................................................................................ 218
11.2.2 私有派生 ............................................................................................................................ 220
11.2.3 保護繼承 ............................................................................................................................ 221
11.3 派生類的構造函數和析構函數 .................................................................................... 225
11.3.1 執行順序和構建原則 ........................................................................................................ 225
11.3.2 派生類的構造函數 ............................................................................................................ 225
11.3.3 派生類析構函數的構建 .................................................................................................... 226
11.4 多重繼承 ........................................................................................................................ 228
11.4.1 二義性問題 ........................................................................................................................ 228
11.4.2 聲明多重繼承 .................................................................................................................... 230
11.4.3 多重繼承的構造函數和析構函數 .................................................................................... 232
11.5 虛基類 ............................................................................................................................ 234
11.5.1 虛基類的引入 .................................................................................................................... 234
11.5.2 定義虛基類 ........................................................................................................................ 235
11.5.3 虛基類的構造函數和初始化 ............................................................................................ 237
11.6 小結 ................................................................................................................................ 238
11.7 習題 ................................................................................................................................ 238
第12 章 多態 ................................................................................................................................ 243
12.1 多態簡介 ........................................................................................................................ 243
12.1.1 什么是多態 ....................................................................................................................... 243
12.1.2 多態的作用 ....................................................................................................................... 244
12.1.3 多態的引入 ....................................................................................................................... 244
12.2 函數重載 ........................................................................................................................ 246
12.3 虛函數 ............................................................................................................................ 247
12.3.1 虛函數的引入 .................................................................................................................... 247
12.3.2 定義虛函數 ....................................................................................................................... 249
12.3.3 使用虛函數 ....................................................................................................................... 250
12.3.4 多重繼承和虛函數 ............................................................................................................ 251
12.3.5 使用虛函數的注意事項 .................................................................................................... 253
12.4 抽象類 ............................................................................................................................ 253
12.4.1 純虛函數 ........................................................................................................................... 253
12.4.2 抽象類 ............................................................................................................................... 255
12.5 小結 ................................................................................................................................ 256
12.6 習題 ................................................................................................................................ 257
第13 章 運算符重載 .................................................................................................................... 260
13.1 運算符重載簡介 ............................................................................................................ 260
13.1.1 運算符重載的定義 ............................................................................................................ 260
13.1.2 運算符重載的特點 ............................................................................................................ 261
13.1.3 運算符重載的規則 ............................................................................................................ 262
13.2 運算符重載的形式 ........................................................................................................ 263
13.2.1 重載為類的成員函數 ........................................................................................................ 263
13.2.2 雙目運算符重載為成員函數 ............................................................................................ 263
13.2.3 單目運算符重載為成員函數 ............................................................................................ 264
13.2.4 運算符重載為類的友元函數 ............................................................................................ 266
13.2.5 雙目運算符重載為友元函數 ............................................................................................ 266
13.2.6 單目運算符重載為友元函數 ............................................................................................ 267
13.2.7 成員運算符函數與友元運算符函數的比較 .................................................................... 269
13.3 特殊運算符的重載 ........................................................................................................ 269
13.3.1 “++”和“??”的重載 ................................................................................................... 269
13.3.2 賦值運算符“=”的重載.................................................................................................. 271
13.3.3 下標運算符“[ ]”的重載 ................................................................................................ 273
13.4 類類型轉換 .................................................................................................................... 274
13.5 小結 ................................................................................................................................ 276
13.6 習題 ................................................................................................................................ 276
第14 章 輸入/輸出流 ................................................................................................................... 280
14.1 輸入/輸出流的引入 ....................................................................................................... 280
14.1.1 printf 與scanf 的缺陷 ....................................................................................................... 280
14.1.2 輸入/輸出流簡介 .............................................................................................................. 281
14.1.3 輸入/輸出流類層次 ........................................................................................................... 282
14.2 標準輸入/輸出流 ........................................................................................................... 283
14.2.1 標準輸出流對象 ................................................................................................................ 283
14.2.2 標準輸入流對象 ................................................................................................................ 284
14.2.3 標準錯誤輸出流對象 ........................................................................................................ 285
14.3 輸入/輸出流成員函數 ................................................................................................... 286
14.3.1 get()函數:輸出字符串 .................................................................................................... 286
14.3.2 getline()函數:獲取字符串 .............................................................................................. 288
14.4 輸入/輸出的格式控制 ................................................................................................... 288
14.4.1 用ios 類的成員函數進行格式控制 ................................................................................. 288
14.4.2 使用格式控制符進行格式控制 ........................................................................................ 291
14.5 用戶自定義數據類型的輸入/輸出 ............................................................................... 293
14.5.1 重載輸出運算符“<<” ................................................................................................... 293
14.5.2 重載輸入運算符“>>” ................................................................................................... 294
14.6 小結 ................................................................................................................................ 296
14.7 習題 ................................................................................................................................ 296
第4 篇 C++高級特性篇
第15 章 文件 ................................................................................................................................ 299
15.1 文件和流 ........................................................................................................................ 299
15.1.1 文件概述 ........................................................................................................................... 299
15.1.2 文件流類 ........................................................................................................................... 300
15.2 文件的打開與關閉 ........................................................................................................ 301
15.2.1 打開文件 ........................................................................................................................... 301
15.2.2 關閉文件 ........................................................................................................................... 303
15.3 文件的順序讀寫 ............................................................................................................ 304
15.3.1 讀寫文本文件 .................................................................................................................... 304
15.3.2 文本文件應用示例 ............................................................................................................ 305
15.3.3 二進制文件概述 ................................................................................................................ 307
15.3.4 讀寫二進制文件 ................................................................................................................ 307
15.4 文件的隨機讀寫 ............................................................................................................ 310
15.5 小結 ................................................................................................................................ 312
15.6 習題 ................................................................................................................................ 312
第16 章 命名空間 ........................................................................................................................ 315
16.1 命名空間簡介 ................................................................................................................ 315
16.1.1 什么是命名空間 ................................................................................................................ 315
16.1.2 定義命名空間 .................................................................................................................... 316
16.2 使用命名空間 ................................................................................................................ 318
16.2.1 使用作用域運算符引用成員 ............................................................................................ 318
16.2.2 使用using 指令 ................................................................................................................. 319
16.2.3 使用using 聲明 ................................................................................................................. 320
16.2.4 using 指令與using 聲明的比較 ........................................................................................ 321
16.3 類的作用域 .................................................................................................................... 321
16.3.1 靜態數據成員 .................................................................................................................... 321
16.3.2 靜態成員函數 .................................................................................................................... 323
16.4 作用域 ............................................................................................................................ 324
16.4.1 局部作用域 ....................................................................................................................... 324
16.4.2 全局作用域 ....................................................................................................................... 326
16.4.3 作用域嵌套 ....................................................................................................................... 327
16.5 this 指針 ......................................................................................................................... 328
16.6 小結 ................................................................................................................................ 330
16.7 習題 ................................................................................................................................ 330
第17 章 引用與內存管理 ............................................................................................................. 333
17.1 引用 ................................................................................................................................ 333
17.1.1 引用概述 ........................................................................................................................... 333
17.1.2 引用的使用 ....................................................................................................................... 334
17.2 引用的操作 .................................................................................................................... 335
17.2.1 引用作為函數參數 ............................................................................................................ 335
17.2.2 引用作為返回值 ................................................................................................................ 336
17.3 動態內存分配 ................................................................................................................ 337
17.3.1 申請動態內存 .................................................................................................................... 337
17.3.2 釋放空間 ........................................................................................................................... 338
17.3.3 malloc 和free 庫函數 ........................................................................................................ 340
17.4 const 引用 ...................................................................................................................... 341
17.5 指針與引用的區別 ........................................................................................................ 343
17.6 小結 ................................................................................................................................ 344
17.7 習題 ................................................................................................................................ 344
第5 篇 C++編程實踐篇
第18 章 標準模板庫STL ............................................................................................................ 347
18.1 標準模板庫 .................................................................................................................... 347
18.1.1 STL 概述 ........................................................................................................................... 347
18.1.2 STL 的引入 ....................................................................................................................... 347
18.1.3 STL 的組成 ....................................................................................................................... 348
18.2 算法 ................................................................................................................................ 349
18.3 容器 ................................................................................................................................ 351
18.3.1 什么是容器 ....................................................................................................................... 351
18.3.2 向量 ................................................................................................................................... 351
18.3.3 列表 ................................................................................................................................... 353
18.3.4 集合 ................................................................................................................................... 355
18.3.5 雙端隊列 ........................................................................................................................... 356
18.3.6 棧 ....................................................................................................................................... 357
18.3.7 映射和多重映射 ................................................................................................................ 358
18.4 迭代器 ............................................................................................................................ 359
18.5 小結 ................................................................................................................................ 361
18.6 習題 ................................................................................................................................ 361
第19 章 模板與C++標準庫 ........................................................................................................ 364
19.1 模板概述 ........................................................................................................................ 364
19.1.1 模板簡介 ........................................................................................................................... 364
19.1.2 模板的引入 ....................................................................................................................... 365
19.2 函數模板 ........................................................................................................................ 366
19.2.1 定義函數模板 .................................................................................................................... 366
19.2.2 生成函數模板 .................................................................................................................... 367
19.2.3 函數模板的異常處理 ........................................................................................................ 368
19.3 類模板 ............................................................................................................................ 369
19.3.1 定義類模板 ....................................................................................................................... 369
19.3.2 模板類 ............................................................................................................................... 370
19.4 C++標準庫概述 ............................................................................................................. 372
19.5 字符串庫 ........................................................................................................................ 373
19.5.1 讀寫字符串 ....................................................................................................................... 373
19.5.2 字符串賦值 ....................................................................................................................... 373
19.5.3 字符串比較 ....................................................................................................................... 374
19.5.4 字符串長度和空字符串 .................................................................................................... 375
19.6 小結 ................................................................................................................................ 377
19.7 習題 ................................................................................................................................ 377
第20 章 異常處理 ........................................................................................................................ 380
20.1 錯誤與異常 .................................................................................................................... 380
20.1.1 什么是異常 ....................................................................................................................... 380
20.1.2 異常處理的基本思想 ........................................................................................................ 380
20.2 異常處理的實現 ............................................................................................................ 382
20.2.1 使用try/catch 捕獲異常 .................................................................................................... 382
20.2.2 使用throw 拋出異常 ........................................................................................................ 383
20.2.3 應用示例 ........................................................................................................................... 384
20.3 類和結構的異常處理 .................................................................................................... 385
20.3.1 異常處理中的構造和析構 ................................................................................................ 386
20.3.2 處理結構類型的異常 ........................................................................................................ 387
20.4 異常處理機制 ................................................................................................................ 388
20.5 小結 ................................................................................................................................ 390
20.6 習題 ................................................................................................................................ 390
第6 篇 實例篇
第21 章 簡單的學生成績管理系統開發實例 ............................................................................. 393
21.1 需求分析 ........................................................................................................................ 393
21.2 總體設計 ........................................................................................................................ 393
21.3 功能模塊的實現 ............................................................................................................ 394
21.3.1 成績錄入模塊 .................................................................................................................... 395
21.3.2 成績統計模塊 .................................................................................................................... 395
21.3.3 成績排名模塊 .................................................................................................................... 396
21.3.4 成績查詢模塊 .................................................................................................................... 398
21.3.5 輸出模塊 ........................................................................................................................... 399
21.4 系統集成 ........................................................................................................................ 399
21.5 系統實現 ........................................................................................................................ 401
21.5.1 結構和變量定義部分 ........................................................................................................ 402
21.5.2 功能函數定義部分 ............................................................................................................ 403
21.5.3 主函數部分 ....................................................................................................................... 404
21.6 小結 ................................................................................................................................ 406