C++语言程序设计(基础篇)(原书第5版) / 计算机科学丛书
定价:¥129.00
作者: [美]梁勇(Y.Daniel Liang)
出版时间:2024-12-18
出版社:机械工业出版社
- 机械工业出版社
- 9787111763970
- 1-1
- 2024-12-18
- 1072
内容简介
本书是关于C++程序设计的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象程序设计和数据结构。本书采用“基础优先,问题驱动”的教学方式,在设计自定义类之前介绍基本的编程概念和技术,同时侧重于解决问题而非语法,通过不同领域的示例说明相关概念。本书引导读者循序渐进地学习,从基本的编程技术到面向对象编程,从简单的数据类型到经典的结构。本书可作为高等院校计算机相关专业程序设计课程的教材,也可作为C++语言及编程爱好者的参考书。
目录
目 录
Introduction to C++ Programming and Data Structures, Fifth Edition
译者序
前言
作者简介
第1章 计算机、程序和C++概述 1
1.1 简介 1
1.2 什么是计算机 1
1.2.1 中央处理器 2
1.2.2 比特和字节 2
1.2.3 内存 3
1.2.4 存储设备 3
1.2.5 输入和输出设备 4
1.2.6 通信设备 5
1.3 程序设计语言 5
1.3.1 机器语言 6
1.3.2 汇编语言 6
1.3.3 高级语言 6
1.4 操作系统 7
1.4.1 控制和监视系统活动 8
1.4.2 分配和派发系统资源 8
1.4.3 调度操作 8
1.5 C++的历史 8
1.6 一个简单的C++程序 9
1.7 C++程序开发周期 13
1.8 程序设计风格和文档 15
1.8.1 适当的注释和注释风格 15
1.8.2 适当的缩进和间距 15
1.8.3 块样式 15
1.9 程序设计错误 16
1.9.1 语法错误 16
1.9.2 运行时错误 17
1.9.3 逻辑错误 18
1.9.4 常见错误 19
关键术语 20
章节总结 20
编程练习 21
第2章 程序设计初步 24
2.1 简介 24
2.2 编写一个简单程序 24
2.3 从键盘读取输入 27
2.4 标识符 29
2.5 变量 30
2.6 赋值语句和赋值表达式 32
2.7 命名常量 32
2.8 数值数据类型和操作 34
2.8.1 数值字面量 37
2.8.2 数值运算符 37
2.8.3 指数运算 39
2.9 计算表达式和运算符优先级 39
2.10 案例研究:显示当前时间 41
2.11 复合赋值运算符 42
2.12 递增和递减运算符 43
2.13 数值类型转换 44
2.14 软件开发过程 46
2.15 案例研究:计算货币单位 50
2.16 常见错误 52
关键术语 54
章节总结 54
编程练习 55
第3章 选择 65
3.1 简介 65
3.2 bool数据类型 66
3.3 if语句 66
3.4 双分支if-else语句 69
3.5 嵌套if和多分支if-else
语句 71
3.6 常见错误和陷阱 72
3.7 案例研究:计算体重指数 76
3.8 案例研究:计算税费 78
3.9 生成随机数 80
3.10 逻辑运算符 82
3.11 案例研究:确定闰年 85
3.12 案例研究:彩票 86
3.13 switch语句 88
3.14 条件运算符 90
3.15 运算符优先级和结合律 91
3.16 调试 92
关键术语 93
章节总结 93
编程练习 93
第4章 数学函数、字符和
字符串 107
4.1 简介 107
4.2 数学函数 108
4.2.1 三角函数 108
4.2.2 指数函数 109
4.2.3 取整函数 109
4.2.4 min、max和abs函数 109
4.2.5 案例研究:计算三角形的
角度 110
4.3 字符数据类型和运算 111
4.3.1 ASCII码 111
4.3.2 从键盘读取字符 112
4.3.3 特殊字符的转义序列 112
4.3.4 char型数据和数值型数据之间的转换 113
4.3.5 字符的比较和检测 115
4.4 案例研究:生成随机字符 115
4.5 案例研究:猜生日 117
4.6 字符函数 120
4.7 案例研究:将十六进制数转换为
十进制数 122
4.8 string类型 123
4.8.1 字符串索引和下标运算符 124
4.8.2 连接字符串 125
4.8.3 比较字符串 125
4.8.4 读取字符串 125
4.9 案例研究:使用字符串修改彩票
程序 128
4.10 格式化控制台输出 130
4.10.1 setprecision(n)
操纵器 132
4.10.2 fixed操纵器 133
4.10.3 showpoint操纵器 133
4.10.4 setw(width)操纵器 134
4.10.5 left和right操纵器 135
4.11 简单文件输入和输出 136
4.11.1 写入文件 136
4.11.2 从文件中读取 138
关键术语 140
章节总结 140
编程练习 140
第5章 循环 149
5.1 简介 149
5.2 while循环 150
5.3 案例研究:猜数字 153
5.4 循环设计策略 156
5.5 使用用户确认或哨兵值控制
循环 159
5.6 输入和输出重定向以及从文件中
读取所有数据 161
5.7 do-while循环 163
5.8 for循环 165
5.9 使用哪个循环 168
5.10 嵌套循环 169
5.11 最小化数值误差 171
5.12 案例研究 172
5.12.1 案例研究:求最大公约数 172
5.12.2 案例研究:预测未来学费 174
5.12.3 案例研究:将十进制数转换为十六进制数 175
5.13 关键字break和continue 177
5.14 案例研究:检查回文 180
5.15 案例研究:显示质数 182
关键术语 184
章节总结 185
编程练习 185
第6章 函数 199
6.1 简介 199
6.2 定义函数 201
6.3 调用函数 202
6.4 void函数 206
6.5 通过值传递参数 209
6.6 模块化代码 209
6.7 重载函数 212
6.8 函数原型 215
6.9 默认参数 217
6.10 内联函数 218
6.11 局部、全局和静态局部变量 220
6.11.1 for循环中的变量作用域 221
6.11.2 静态局部变量 223
6.12 通过引用传递参数 224
6.13 常量引用参数 234
6.14 案例研究:将十六进制数转换为
十进制数 234
6.15 函数抽象和逐步细化 237
6.15.1 自顶向下设计 238
6.15.2 自顶向下或自底向上实现 239
6.15.3 实现细节 240
6.15.4 逐步细化的好处 244
关键术语 244
章节总结 245
编程练习 246
第7章 一维数组和C字符串 262
7.1 简介 262
7.2 数组基础知识 262
7.2.1 声明数组 263
7.2.2 访问数组元素 264
7.2.3 数组初始化语句 265
7.2.4 处理数组 265
7.2.5 foreach循环 268
7.3 案例研究:分析数字 268
7.4 案例研究:一副牌 270
7.5 将数组传递给函数 272
7.6 防止函数中数组参数的更改 274
7.7 从函数返回数组 276
7.8 案例研究:统计每个字母的出现
次数 277
7.9 查找数组 280
7.9.1 线性查找法 280
7.9.2 二分查找法 281
7.10 数组排序 285
7.11 C字符串 286
7.11.1 C字符串的输入和输出 287
7.11.2 C字符串函数 288
7.11.3 用strcpy和strncpy
复制字符串 289
7.11.4 用strcat和strncat
连接字符串 289
7.11.5 比较字符串 290
7.11.6 字符串与C字符串相互
转换 290
7.11.7 将字符串转换为数字 290
7.12 将数字转换为字符串 291
关键术语 291
章节总结 292
编程练习 292
第8章 多维数组 309
8.1 简介 309
8.2 声明二维数组 309
8.3 处理二维数组 311
8.4 将二维数组传递给函数 312
8.5 案例研究:对选择题测验评分 314
8.6 案例研究:寻找最近点对 315
8.7 案例研究:数独 318
8.8 多维数组 321
8.8.1 案例研究:每日温度和
湿度 322
8.8.2 案例研究:猜测生日 324
关键术语 326
章节总结 326
编程练习 326
第9章 对象和类 343
9.1 简介 343
9.2 为对象定义类 343
9.3 示例:定义类和创建对象 345
9.4 构造函数 349
9.5 构造和使用对象 350
9.6 将类定义与实现分离 352
9.7 防止多重包含 355
9.8 类中的内联函数 356
9.9 数据字段封装 357
9.10 变量作用域 360
9.11 类抽象和封装 362
关键术语 367
章节总结 367
编程练习 368
第10章 面向对象思维 372
10.1 简介 372
10.2 string类 372
10.2.1 构造字符串 373
10.2.2 追加字符串 373
10.2.3 字符串赋值 373
10.2.4 函数at、clear、erase、empty、back和front 374
10.2.5 函数length、size、capacity和c_str() 375
10.2.6 比较字符串 375
10.2.7 获取子字符串 375
10.2.8 在字符串中查找 376
10.2.9 插入和替换字符串 376
10.2.10 字符串运算符 377
10.2.11 用stringstream将数字
转换为字符串 377
10.2.12 拆分字符串 378
10.2.13 案例研究:替换字符串 379
10.3 将对象传递给函数 380
10.4 对象数组 382
10.5 实例成员和静态成员 384
10.6 常量成员函数 390
10.7 面向对象的思想 392
10.8 类关系 396
10.8.1 关联 396
10.8.2 聚合和组合 397
10.9 案例研究:StackOfIntegers
类 399
10.10 构造函数初始化列表 402
10.11 类设计指南 405
10.11.1 内聚性 406
10.11.2 一致性 406
10.11.3 封装性 406
10.11.4 清晰性 406
10.11.5 完整性 407
10.11.6 实例与静态 407
关键术语 407
章节总结 407
编程练习 408
第11章 指针与动态内存管理 414
11.1 简介 414
11.2 指针基础 414
11.3 使用typedef关键字定义
同义类型 419
11.4 将const与指针一起使用 420
11.5 数组和指针 421
11.6 在函数调用中传递指针参数 424
11.7 从函数返回指针 428
11.8 有用的数组函数 429
11.9 动态持久内存分配 430
11.10 创建和访问动态对象 435
11.11 this指针 435
11.12 析构函数 436
11.13 案例研究:Course类 439
11.14 复制构造函数 442
11.15 自定义复制构造函数 446
关键术语 450
章节总结 450
编程练习 451
第12章 模板、向量和栈 457
12.1 简介 457
12.2 模板基础知识 457
12.3 示例:泛型排序 461
12.4 类模板 463
12.5 改进Stack类 469
12.6 C++ vector类 471
12.7 向量的插入和删除及其他
函数 474
12.8 使用vector类替换数组 476
12.9 案例研究:计算表达式 479
12.10 使用智能指针自动销毁对象 483
关键术语 485
章节总结 485
编程练习 486
第13章 文件输入和输出 495
13.1 简介 495
13.2 文本I/O 496
13.2.1 将数据写入文件 496
13.2.2 从文件读取数据 498
13.2.3 检测文件是否存在 499
13.2.4 检测文件的结尾 499
13.2.5 用户输入文件名 502
13.3 格式化输出 503
13.4 函数:getline、get和
put 504
13.5 fstream和文件打开模式 507
13.6 测试流状态 509
13.7 二进制I/O 511
13.7.1 write函数 512
13.7.2 read函数 515
13.7.3 示例:二进制数组I/O 516
13.7.4 示例:二进制对象I/O 517
13.8 随机访问文件 521
13.9 更新文件 524
关键术语 526
章节总结 526
编程练习 526
第14章 运算符重载 531
14.1 简介 531
14.2 Rational类 532
14.3 运算符函数 538
14.4 重载下标运算符[] 540
14.5 重载复合赋值运算符 542
14.6 重载一元运算符 542
14.7 重载++和––运算符 543
14.8 友元函数和友元类 544
14.9 重载<<和>>运算符 547
14.10 自动类型转换 549
14.10.1 转换为基元数据类型 549
14.10.2 转换为对象类型 549
14.11 为重载运算符定义非成员
函数 550
14.12 带有重载函数运算符的
Rational类 551
14.13 重载=运算符 558
关键术语 565
章节总结 565
编程练习 566
第15章 继承与多态性 569
15.1 简介 569
15.2 基类和派生类 569
15.3 泛型编程 579
15.4 构造函数和析构函数 579
15.4.1 调用基类构造函数 579
15.4.2 构造函数链和析构函数链 581
15.5 重定义函数 583
15.6 多态性 585
15.7 虚拟函数和动态绑定 586
15.8 C++11 override和final
关键字 592
15.9 protected关键字 595
15.10 抽象类和纯虚拟函数 597
15.11 转换:静态转换与动态转换 605
关键术语 608
章节总结 609
编程练习 609
第16章 异常处理 611
16.1 简介 611
16.2 异常处理概述 611
16.3 异常类 616
16.4 自定义异常类 621
16.5 多次捕获 626
16.6 异常传播 631
16.7 重抛异常 633
16.8 何时使用异常 634
关键术语 634
章节总结 635
编程练习 635
附录A C++关键字 637
附录B ASCII字符集 638
附录C 运算符优先级表 639
附录D 数字系统 641
附录E 按位运算 645
附录F 使用命令行参数 646
附录G 枚举类型 649
附录H 正则表达式 653
附录I 大O、大Omega和大Theta
表示法 660
Introduction to C++ Programming and Data Structures, Fifth Edition
译者序
前言
作者简介
第1章 计算机、程序和C++概述 1
1.1 简介 1
1.2 什么是计算机 1
1.2.1 中央处理器 2
1.2.2 比特和字节 2
1.2.3 内存 3
1.2.4 存储设备 3
1.2.5 输入和输出设备 4
1.2.6 通信设备 5
1.3 程序设计语言 5
1.3.1 机器语言 6
1.3.2 汇编语言 6
1.3.3 高级语言 6
1.4 操作系统 7
1.4.1 控制和监视系统活动 8
1.4.2 分配和派发系统资源 8
1.4.3 调度操作 8
1.5 C++的历史 8
1.6 一个简单的C++程序 9
1.7 C++程序开发周期 13
1.8 程序设计风格和文档 15
1.8.1 适当的注释和注释风格 15
1.8.2 适当的缩进和间距 15
1.8.3 块样式 15
1.9 程序设计错误 16
1.9.1 语法错误 16
1.9.2 运行时错误 17
1.9.3 逻辑错误 18
1.9.4 常见错误 19
关键术语 20
章节总结 20
编程练习 21
第2章 程序设计初步 24
2.1 简介 24
2.2 编写一个简单程序 24
2.3 从键盘读取输入 27
2.4 标识符 29
2.5 变量 30
2.6 赋值语句和赋值表达式 32
2.7 命名常量 32
2.8 数值数据类型和操作 34
2.8.1 数值字面量 37
2.8.2 数值运算符 37
2.8.3 指数运算 39
2.9 计算表达式和运算符优先级 39
2.10 案例研究:显示当前时间 41
2.11 复合赋值运算符 42
2.12 递增和递减运算符 43
2.13 数值类型转换 44
2.14 软件开发过程 46
2.15 案例研究:计算货币单位 50
2.16 常见错误 52
关键术语 54
章节总结 54
编程练习 55
第3章 选择 65
3.1 简介 65
3.2 bool数据类型 66
3.3 if语句 66
3.4 双分支if-else语句 69
3.5 嵌套if和多分支if-else
语句 71
3.6 常见错误和陷阱 72
3.7 案例研究:计算体重指数 76
3.8 案例研究:计算税费 78
3.9 生成随机数 80
3.10 逻辑运算符 82
3.11 案例研究:确定闰年 85
3.12 案例研究:彩票 86
3.13 switch语句 88
3.14 条件运算符 90
3.15 运算符优先级和结合律 91
3.16 调试 92
关键术语 93
章节总结 93
编程练习 93
第4章 数学函数、字符和
字符串 107
4.1 简介 107
4.2 数学函数 108
4.2.1 三角函数 108
4.2.2 指数函数 109
4.2.3 取整函数 109
4.2.4 min、max和abs函数 109
4.2.5 案例研究:计算三角形的
角度 110
4.3 字符数据类型和运算 111
4.3.1 ASCII码 111
4.3.2 从键盘读取字符 112
4.3.3 特殊字符的转义序列 112
4.3.4 char型数据和数值型数据之间的转换 113
4.3.5 字符的比较和检测 115
4.4 案例研究:生成随机字符 115
4.5 案例研究:猜生日 117
4.6 字符函数 120
4.7 案例研究:将十六进制数转换为
十进制数 122
4.8 string类型 123
4.8.1 字符串索引和下标运算符 124
4.8.2 连接字符串 125
4.8.3 比较字符串 125
4.8.4 读取字符串 125
4.9 案例研究:使用字符串修改彩票
程序 128
4.10 格式化控制台输出 130
4.10.1 setprecision(n)
操纵器 132
4.10.2 fixed操纵器 133
4.10.3 showpoint操纵器 133
4.10.4 setw(width)操纵器 134
4.10.5 left和right操纵器 135
4.11 简单文件输入和输出 136
4.11.1 写入文件 136
4.11.2 从文件中读取 138
关键术语 140
章节总结 140
编程练习 140
第5章 循环 149
5.1 简介 149
5.2 while循环 150
5.3 案例研究:猜数字 153
5.4 循环设计策略 156
5.5 使用用户确认或哨兵值控制
循环 159
5.6 输入和输出重定向以及从文件中
读取所有数据 161
5.7 do-while循环 163
5.8 for循环 165
5.9 使用哪个循环 168
5.10 嵌套循环 169
5.11 最小化数值误差 171
5.12 案例研究 172
5.12.1 案例研究:求最大公约数 172
5.12.2 案例研究:预测未来学费 174
5.12.3 案例研究:将十进制数转换为十六进制数 175
5.13 关键字break和continue 177
5.14 案例研究:检查回文 180
5.15 案例研究:显示质数 182
关键术语 184
章节总结 185
编程练习 185
第6章 函数 199
6.1 简介 199
6.2 定义函数 201
6.3 调用函数 202
6.4 void函数 206
6.5 通过值传递参数 209
6.6 模块化代码 209
6.7 重载函数 212
6.8 函数原型 215
6.9 默认参数 217
6.10 内联函数 218
6.11 局部、全局和静态局部变量 220
6.11.1 for循环中的变量作用域 221
6.11.2 静态局部变量 223
6.12 通过引用传递参数 224
6.13 常量引用参数 234
6.14 案例研究:将十六进制数转换为
十进制数 234
6.15 函数抽象和逐步细化 237
6.15.1 自顶向下设计 238
6.15.2 自顶向下或自底向上实现 239
6.15.3 实现细节 240
6.15.4 逐步细化的好处 244
关键术语 244
章节总结 245
编程练习 246
第7章 一维数组和C字符串 262
7.1 简介 262
7.2 数组基础知识 262
7.2.1 声明数组 263
7.2.2 访问数组元素 264
7.2.3 数组初始化语句 265
7.2.4 处理数组 265
7.2.5 foreach循环 268
7.3 案例研究:分析数字 268
7.4 案例研究:一副牌 270
7.5 将数组传递给函数 272
7.6 防止函数中数组参数的更改 274
7.7 从函数返回数组 276
7.8 案例研究:统计每个字母的出现
次数 277
7.9 查找数组 280
7.9.1 线性查找法 280
7.9.2 二分查找法 281
7.10 数组排序 285
7.11 C字符串 286
7.11.1 C字符串的输入和输出 287
7.11.2 C字符串函数 288
7.11.3 用strcpy和strncpy
复制字符串 289
7.11.4 用strcat和strncat
连接字符串 289
7.11.5 比较字符串 290
7.11.6 字符串与C字符串相互
转换 290
7.11.7 将字符串转换为数字 290
7.12 将数字转换为字符串 291
关键术语 291
章节总结 292
编程练习 292
第8章 多维数组 309
8.1 简介 309
8.2 声明二维数组 309
8.3 处理二维数组 311
8.4 将二维数组传递给函数 312
8.5 案例研究:对选择题测验评分 314
8.6 案例研究:寻找最近点对 315
8.7 案例研究:数独 318
8.8 多维数组 321
8.8.1 案例研究:每日温度和
湿度 322
8.8.2 案例研究:猜测生日 324
关键术语 326
章节总结 326
编程练习 326
第9章 对象和类 343
9.1 简介 343
9.2 为对象定义类 343
9.3 示例:定义类和创建对象 345
9.4 构造函数 349
9.5 构造和使用对象 350
9.6 将类定义与实现分离 352
9.7 防止多重包含 355
9.8 类中的内联函数 356
9.9 数据字段封装 357
9.10 变量作用域 360
9.11 类抽象和封装 362
关键术语 367
章节总结 367
编程练习 368
第10章 面向对象思维 372
10.1 简介 372
10.2 string类 372
10.2.1 构造字符串 373
10.2.2 追加字符串 373
10.2.3 字符串赋值 373
10.2.4 函数at、clear、erase、empty、back和front 374
10.2.5 函数length、size、capacity和c_str() 375
10.2.6 比较字符串 375
10.2.7 获取子字符串 375
10.2.8 在字符串中查找 376
10.2.9 插入和替换字符串 376
10.2.10 字符串运算符 377
10.2.11 用stringstream将数字
转换为字符串 377
10.2.12 拆分字符串 378
10.2.13 案例研究:替换字符串 379
10.3 将对象传递给函数 380
10.4 对象数组 382
10.5 实例成员和静态成员 384
10.6 常量成员函数 390
10.7 面向对象的思想 392
10.8 类关系 396
10.8.1 关联 396
10.8.2 聚合和组合 397
10.9 案例研究:StackOfIntegers
类 399
10.10 构造函数初始化列表 402
10.11 类设计指南 405
10.11.1 内聚性 406
10.11.2 一致性 406
10.11.3 封装性 406
10.11.4 清晰性 406
10.11.5 完整性 407
10.11.6 实例与静态 407
关键术语 407
章节总结 407
编程练习 408
第11章 指针与动态内存管理 414
11.1 简介 414
11.2 指针基础 414
11.3 使用typedef关键字定义
同义类型 419
11.4 将const与指针一起使用 420
11.5 数组和指针 421
11.6 在函数调用中传递指针参数 424
11.7 从函数返回指针 428
11.8 有用的数组函数 429
11.9 动态持久内存分配 430
11.10 创建和访问动态对象 435
11.11 this指针 435
11.12 析构函数 436
11.13 案例研究:Course类 439
11.14 复制构造函数 442
11.15 自定义复制构造函数 446
关键术语 450
章节总结 450
编程练习 451
第12章 模板、向量和栈 457
12.1 简介 457
12.2 模板基础知识 457
12.3 示例:泛型排序 461
12.4 类模板 463
12.5 改进Stack类 469
12.6 C++ vector类 471
12.7 向量的插入和删除及其他
函数 474
12.8 使用vector类替换数组 476
12.9 案例研究:计算表达式 479
12.10 使用智能指针自动销毁对象 483
关键术语 485
章节总结 485
编程练习 486
第13章 文件输入和输出 495
13.1 简介 495
13.2 文本I/O 496
13.2.1 将数据写入文件 496
13.2.2 从文件读取数据 498
13.2.3 检测文件是否存在 499
13.2.4 检测文件的结尾 499
13.2.5 用户输入文件名 502
13.3 格式化输出 503
13.4 函数:getline、get和
put 504
13.5 fstream和文件打开模式 507
13.6 测试流状态 509
13.7 二进制I/O 511
13.7.1 write函数 512
13.7.2 read函数 515
13.7.3 示例:二进制数组I/O 516
13.7.4 示例:二进制对象I/O 517
13.8 随机访问文件 521
13.9 更新文件 524
关键术语 526
章节总结 526
编程练习 526
第14章 运算符重载 531
14.1 简介 531
14.2 Rational类 532
14.3 运算符函数 538
14.4 重载下标运算符[] 540
14.5 重载复合赋值运算符 542
14.6 重载一元运算符 542
14.7 重载++和––运算符 543
14.8 友元函数和友元类 544
14.9 重载<<和>>运算符 547
14.10 自动类型转换 549
14.10.1 转换为基元数据类型 549
14.10.2 转换为对象类型 549
14.11 为重载运算符定义非成员
函数 550
14.12 带有重载函数运算符的
Rational类 551
14.13 重载=运算符 558
关键术语 565
章节总结 565
编程练习 566
第15章 继承与多态性 569
15.1 简介 569
15.2 基类和派生类 569
15.3 泛型编程 579
15.4 构造函数和析构函数 579
15.4.1 调用基类构造函数 579
15.4.2 构造函数链和析构函数链 581
15.5 重定义函数 583
15.6 多态性 585
15.7 虚拟函数和动态绑定 586
15.8 C++11 override和final
关键字 592
15.9 protected关键字 595
15.10 抽象类和纯虚拟函数 597
15.11 转换:静态转换与动态转换 605
关键术语 608
章节总结 609
编程练习 609
第16章 异常处理 611
16.1 简介 611
16.2 异常处理概述 611
16.3 异常类 616
16.4 自定义异常类 621
16.5 多次捕获 626
16.6 异常传播 631
16.7 重抛异常 633
16.8 何时使用异常 634
关键术语 634
章节总结 635
编程练习 635
附录A C++关键字 637
附录B ASCII字符集 638
附录C 运算符优先级表 639
附录D 数字系统 641
附录E 按位运算 645
附录F 使用命令行参数 646
附录G 枚举类型 649
附录H 正则表达式 653
附录I 大O、大Omega和大Theta
表示法 660




