本书从初学者的角度较全面地介绍了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