第1章 了解C++语言 1
1.1 计算机语言 1
1.2 C++语言简史 2
1.3 C++的基本概念 3
1.4 C++语言增强类型 5
1.5 C++环境 6
1.6 C++语言前景 7
1.7 C++基本知识点小结 7
第2章 初识C++程序 9
2.1 最小的C++程序 9
实例2-1 9
2.2 功能最简单的C++程序 10
实例2-2 10
2.2.1 预处理指令 10
2.2.2 头文件 11
2.2.3 空格和空行 11
2.2.4 main()函数的声明 11
2.2.5 main()函数的作用范围 11
2.2.6 源程序注释 12
2.2.7 控制台输出 12
2.2.8 return语句 12
2.2.9 程序的结束 12
第3章 C++基础知识 13
3.1 标识符 13
3.2 关键字 13
3.3 标准输出流 14
3.4 变量 14
3.4.1 布尔型变量 15
实例3-1 15
3.4.2 字符型变量 16
实例3-2 16
3.4.3 wchar_t型变量 17
实例3-3 17
3.4.4 整型变量 17
实例3-4 18
3.4.5 浮点型变量 18
实例3-5 19
3.5 常量 19
3.5.1 字符型常量 19
3.5.2 转义字符 19
3.5.3 整型常量 20
3.5.4 浮点型常量 21
3.5.5 地址常量 21
3.5.6 字符串常量 21
实例3-6 21
3.6 表达式 22
3.7 赋值语句 22
实例3-7 23
3.8 用逗号分隔开的声明语句 24
3.9 表达式中的运算符 24
3.9.1 算术运算符 24
实例3-8 25
3.9.2 逻辑运算符 26
3.9.3 位逻辑运算符 26
3.9.4 位移运算符 27
3.9.5 关系运算符 27
3.9.6 自增和自减运算符 29
实例3-9 29
3.9.7 赋值运算符 30
实例3-10 31
3.9.8 复合赋值运算符 31
实例3-11 32
3.9.9 条件运算符 32
实例3-12 33
3.9.10 逗号运算符 34
实例3-13 34
3.10 优先级和计算顺序 34
3.10.1 结合律 35
3.10.2 优先级 36
3.11 表达式不参加运算的情况 36
3.12 初始化 36
实例3-14 37
3.13 类型转换 37
实例3-15 38
3.14 控制台输入与输出 39
3.14.1 标准输出流 39
实例3-16 39
3.14.2 格式化输出 40
实例3-17 40
3.14.3 标准错误流 41
3.14.4 标准输入流 41
实例3-18 41
实例3-19 41
第4章 C++函数 43
4.1 C++函数简介 43
4.1.1 函数头 43
4.1.2 语句体 43
4.1.3 main()函数及函数调用 43
4.1.4 形参和实参 44
4.2 函数原型 44
4.2.1 无标识符的参数类型 45
4.2.2 函数原型实例 45
4.2.3 void型函数 45
4.2.4 无参数的函数 45
4.2.5 参数个数可变的函数 45
4.2.6 既没有返回值也不带参数的函数 46
4.2.7 标准库函数的原型 46
4.2.8 不需要原型的函数 46
4.3 函数的定义 46
实例4-1 46
4.4 函数的返回 47
实例4-2 47
4.5 函数的返回值 48
实例4-3 49
4.6 参数的传递和使用 49
实例4-4 50
4.6.1 标识符的作用域 51
4.6.2 通过函数调用来初始化 51
4.6.3 初始化执行的顺序 51
4.6.4 传递多个参数 51
实例4-5 51
4.6.5 用做实参的函数调用 52
4.6.6 值传递 52
4.6.7 实参和返回值的类型转换 53
4.7 无名的函数形参 53
4.8 函数默认参数 53
实例4-6 54
4.9 内联函数 54
实例4-7 54
4.10 递归 55
4.11 函数重载 55
4.11.1 为完成不同的操作而重载 55
实例4-8 56
4.11.2 为不同的格式而重载 56
实例4-9 56
4.12 安全连接 57
4.13 连接说明 58
实例4-10 59
第5章 C++控制结构 62
5.1 语句块 62
5.1.1 多层嵌套 62
5.1.2 嵌套深度 62
5.1.3 缩进风格 62
5.2 条件语句 63
5.2.1 if语句 63
实例5-1 63
实例5-2 64
实例5-3 64
5.2.2 if...else语句 65
实例5-4 65
5.2.3 else...if语句 66
实例5-5 66
5.2.4 switch...case语句 67
实例5-6 67
5.2.5 在if语句的条件表达式里声明变量 68
5.3 循环语句 69
5.3.1 while语句 69
实例5-7 69
5.3.2 do...while语句 70
实例5-8 70
5.3.3 for语句 72
实例5-9 72
实例5-10 73
5.3.4 在for语句的条件表达式内声明变量 73
5.4 循环控制 73
5.4.1 break语句 74
实例5-11 74
5.4.2 continue语句 74
实例5-12 74
5.5 goto语句 75
实例5-13 75
5.5.1 goto语句的错误用法 76
5.5.2 goto语句错误的改正 77
实例5-14 77
实例5-15 77
5.5.3 是否可以使用goto语句 78
5.6 小结 78
第6章 作用域 80
6.1 全局作用域 80
实例6-1 80
6.2 局部作用域 81
实例6-2 81
实例6-3 82
6.3 全局作用域解析符 83
实例6-4 83
6.4 文件作用域 83
实例6-5 84
6.5 作用域和生存周期 84
实例6-6 85
第7章 C++数据类型 86
7.1 存储类型 86
7.1.1 自动存储类型 86
7.1.2 静态存储类型 86
实例7-1 87
7.1.3 外部存储类型 87
实例7-2 87
7.1.4 寄存器存储类型 89
实例7-3 89
7.2 初始化的默认值 89
7.3 类型修饰符 90
7.3.1 const类型修饰符 90
实例7-4 90
7.3.2 volatile类型修饰符 90
实例7-5 90
7.4 用户定义的数据类型 91
7.4.1 结构的声明 91
7.4.2 结构变量的定义 92
7.4.3 对结构成员的引用 92
实例7-6 92
7.4.4 结构的初始化 93
实例7-7 93
7.4.5 结构的嵌套 93
实例7-8 93
7.4.6 向函数传递结构和从函数返回结构 94
实例7-9 94
7.5 联合数据类型 95
实例7-10 95
7.5.1 联合的初始化 97
实例7-11 97
7.5.2 匿名联合 97
实例7-12 97
7.5.3 枚举常量 98
实例7-13 99
第8章 数组 100
8.1 数组的声明 100
8.2 利用下标访问数组元素 100
8.3 数组的初始化 100
实例8-1 101
8.4 结构数组 101
实例8-2 101
8.5 多维数组 102
实例8-3 102
8.6 字符型数组 104
实例8-4 104
第9章 指针和地址 106
9.1 指向内部数据类型的指针 106
实例9-1 107
9.2 指针的算术运算 108
实例9-2 108
实例9-3 109
9.3 指针和数组 110
实例9-4 110
实例9-5 111
9.4 结构指针 112
实例9-6 112
9.5 用做函数参数的指针 113
实例9-7 114
实例9-8 114
9.6 以地址作为函数的返回值 116
实例9-9 116
实例9-10 117
9.7 函数指针 117
实例9-11 118
实例9-12 119
9.8 指针的指针 120
实例9-13 121
9.9 指向指针数组的指针 121
实例9-14 121
9.10 指向const型变量的指针 122
实例9-15 123
9.11 const型指针变量 124
实例9-16 124
9.12 void型指针 125
实例9-17 125
9.13 sizeof运算符 126
实例9-18 127
9.14 C风格的强制类型转换与typedef 128
实例9-19 129
9.15 命令行参数 130
实例9-20 130
9.16 程序的内存结构 130
9.16.1 堆 131
9.16.2 new和delete运算符 131
实例9-21 131
9.16.3 为固定大小的数组分配内存 132
实例9-22 132
9.16.4 为动态数组分配内存 133
实例9-23 133
9.16.5 堆耗尽时的处理 134
9.16.6 栈 134
9.17 递归 134
9.17.1 一个简单递归的例子 135
实例9-24 135
9.17.2 一个使用了递归的计算器程序 136
实例9-25 136
第10章 引用 140
10.1 引用与指针的比较 140
10.2 引用是一个别名 140
实例10-1 141
实例10-2 141
10.3 引用的初始化 142
10.4 利用引用来简化复杂的表示法 142
实例10-3 142
10.5 作为函数形参的引用 143
实例10-4 144
10.6 以引用方式调用 145
实例10-5 145
10.7 const型引用形参 146
10.8 以引用作为返回值 146
实例10-6 146
10.9 以const型引用作为返回值 147
10.10 返回指向自变量的引用 148
10.11 指针和引用的使用场合 148
第11章 库函数和宏 149
11.1 <cassert> 150
实例11-1 150
11.2 <cctype> 151
11.3 <cerrno> 151
实例11-2 152
11.4 <cmath> 152
11.5 <csetjmp> 153
实例11-3 153
11.6 <cstdarg> 155
实例11-4 155
11.7 <cstdio> 156
11.8 <cstdlib> 156
11.8.1 数字函数 157
11.8.2 内存管理函数 157
11.8.3 系统函数 157
11.8.4 随机数发生器函数 158
实例11-5 158
11.9 <cstring> 159
实例11-6 159
11.10 <ctime> 160
实例11-7 161
第12章 预处理 162
12.1 预处理指令 162
12.2 文件的包含与#include指令 162
12.3 宏 163
12.3.1 #define指令 164
12.3.2 带参数的#define指令 164
实例12-1 165
实例12-2 167
12.3.3 格式和对齐 169
12.3.4 #运算符 169
实例12-3 169
12.3.5 ##运算符 170
实例12-4 170
实例12-5 171
12.3.6 #undef指令 171
12.4 条件编译指令 171
12.4.1 #if指令 171
12.4.2 #endif指令 171
实例12-6 172
12.4.3 #if defined指令 172
实例12-7 172
12.4.4 #ifdef和#ifndef指令 173
12.4.5 #else指令 173
实例12-8 173
12.4.6 #elif指令 173
实例12-9 173
12.4.7 #error指令 174
实例12-10 174
12.5 其他标准指令 175
12.5.1 #line指令 175
12.5.2 #pragma指令 175
第13章 C++结构与类 176
13.1 C++的类 176
13.2 数据类型的属性 176
13.2.1 数据描述 176
13.2.2 实现 176
13.2.3 性质 177
13.2.4 接口 177
13.3 自定义数据类型 177
13.3.1 抽象 177
13.3.2 对象是什么 177
13.3.3 数据抽象和面向过程编程 177
实例13-1 177
13.3.4 数据抽象和封装 179
13.4 带有函数的结构体 179
13.4.1 向结构体添加函数 179
实例13-2 179
13.4.2 同一结构的多个实例 180
实例13-3 180
13.4.3 具有相同函数名的不同结构 181
实例13-4 181
13.5 访问控制符 183
13.6 面向过程的编程方法 184
13.7 类与结构的比较 184
13.8 联合体 184
第14章 C++函数模板 185
14.1 函数模板基础 185
实例14-1 185
实例14-2 186
14.2 函数的定制 187
实例14-3 187
实例14-4 188
14.3 使用模板排序 189
实例14-5 190
实例14-6 191
第15章 类 193
15.1 类的设计 193
15.1.1 类的声明 193
实例15-1 193
15.1.2 类的成员 195
15.1.3 类成员的可见性 195
15.1.4 数据成员 195
15.1.5 初始化 195
15.1.6 成员函数 196
15.1.7 面向对象的类的设计方法 196
15.1.8 类对象的作用域 196
15.1.9 内联函数 197
实例15-2 197
15.2 构造函数 198
15.2.1 使用默认参数的构造函数 199
实例15-3 199
15.2.2 默认构造函数 200
15.2.3 重载构造函数 200
实例15-4 200
15.3 析构函数 201
15.4 类的转换 202
15.4.1 转换函数 202
15.4.2 转换构造函数 202
实例15-5 202
15.4.3 成员转换函数 203
实例15-6 204
15.4.4 类的转换 205
实例15-7 205
15.4.5 转换函数的调用 207
实例15-8 207
15.4.6 其他转换方法 208
实例15-9 208
15.4.7 显式构造函数 210
15.4.8 表达式内部的转换 210
实例15-10 211
15.5 私有数据成员的使用 211
15.5.1 取值和赋值成员函数 212
实例15-11 212
15.5.2 常量成员函数 213
15.5.3 改进的成员转换函数 213
实例15-12 213
15.6 友元 214
15.6.1 友元类 214
实例15-13 215
15.6.2 隐式构造函数 216
15.6.3 前向引用 216
15.6.4 显式友元前向引用 216
实例15-14 217
15.6.5 友元函数 218
实例15-15 218
15.6.6 匿名对象 219
15.6.7 非类成员的友元函数 219
实例15-16 220
15.7 析构函数的使用 221
实例15-17 221
15.8 重载赋值运算符 223
实例15-18 223
15.9 this指针 225
15.9.1 以this指针作为返回值 225
实例15-19 226
15.9.2 在链表中使用this指针 228
实例15-20 228
15.10 类对象数组 230
实例15-21 230
15.10.1 类对象数组和默认构造函数 231
实例15-22 231
15.10.2 类对象数组和析构函数 232
实例15-23 232
15.11 静态成员 233
15.11.1 静态数据成员 233
实例15-24 234
15.11.2 静态成员函数 235
实例15-25 236
15.11.3 公有静态成员 237
15.12 类和堆 237
15.12.1 构造函数和析构函数 237
实例15-26 238
15.12.2 堆和类数组 238
实例15-27 238
实例15-28 239
15.12.3 重载new和delete运算符 240
实例15-29 241
15.12.4 检测异常 242
15.12.5 重载new和delete中的异常处理 243
15.12.6 重载new[ ]和delete[ ] 243
实例15-30 243
15.13 副本构造函数 245
实例15-31 245
15.14 类的引用 247
实例15-32 247
15.15 构造函数的参数初始化表 249
15.16 对const修饰符的简单说明 250
15.17 可变的数据成员 252
实例15-33 252
15.18 类的源文件和目标文件的管理 253
15.18.1 头文件中的类声明 253
15.18.2 库中的类成员函数 253
第16章 运算符重载 254
16.1 运算符重载的场合 254
16.2 运算符重载的规则 255
16.3 双目算术运算符 256
16.4 作为类成员的运算符函数 256
实例16-1 257
16.5 非类成员的运算符函数 258
实例16-2 258
16.6 关系运算符 260
实例16-3 260
16.7 其他的赋值运算符 262
实例16-4 262
16.8 自增和自减运算符 263
实例16-5 263
16.9 单目正、负运算符 265
实例16-6 265
16.10 下标运算符 266
实例16-7 266
16.11 成员指针运算符 268
实例16-8 268
第17章 类的继承 270
17.1 继承 270
17.2 使用继承的原因 272
17.3 数据抽象类的设计 272
17.3.1 基类 273
实例17-1 273
17.3.2 效率设计 275
实例17-2 275
17.3.3 单继承 277
17.3.4 派生类 277
实例17-3 277
17.3.5 受保护的成员 278
17.3.6 派生类的成员和定制的成员 278
17.3.7 公有和私有的基类 278
17.3.8 基类和派生类的构造函数 278
17.3.9 定制新的成员函数 279
17.3.10 重定义基类的成员函数 279
实例17-4 279
17.3.11 编写程序 280
实例17-5 280
17.3.12 用于基类和派生类的作用域运算符 281
实例17-6 281
17.3.13 多个派生类 282
17.3.14 第二个派生类 282
实例17-7 282
实例17-8 282
17.3.15 使用基类和派生类 284
实例17-9 284
17.3.16 派生类之间的关系 284
17.3.17 从派生类派生出的类 285
实例17-10 286
实例17-11 287
17.4 类层次结构的设计 287
17.4.1 C++与纯面向对象的设计 288
17.4.2 数据抽象 289
17.4.3 重载运算符<<和>> 289
实例17-12 291
实例17-13 291
17.4.4 两个更为抽象的数据 292
实例17-14 292
实例17-15 292
实例17-16 293
实例17-17 293
17.4.5 包含头文件 294
17.4.6 C++标准字符串类 294
17.5 基类Person 294
实例17-18 294
实例17-19 296
17.5.1 类中的枚举数据类型 297
17.5.2 虚函数 297
17.5.3 纯虚函数 297
17.5.4 两种显示方式 297
17.6 派生类 297
17.6.1 类Employee 298
实例17-20 298
实例17-21 298
17.6.2 函数重载 299
17.6.3 类WagedEmployee 299
实例17-22 299
实例17-23 300
17.6.4 类SalariedEmployee 300
实例17-24 300
实例17-25 301
17.6.5 类Contractor 301
实例17-26 302
实例17-27 302
17.6.6 构造目标代码库 303
17.6.7 使用问题域类层次结构 303
实例17-28 303
17.6.8 用引用方式调用虚函数 306
17.6.9 用引用方式调用非虚函数 307
17.6.10 对重定义的虚函数的调用 307
17.6.11 派生类没有重定义的虚函数 307
17.6.12 虚析构函数 307
实例17-29 307
实例17-30 308
17.6.13 应该定义为虚函数的成员函数 309
17.7 多态性 309
第18章 类的多重继承 311
18.1 多个基类 311
18.1.1 多重继承中的构造函数的执行 312
18.1.2 多重继承中的析构函数的执行 312
18.2 细化资产系统的设计 312
18.3 重定义多重继承中的成员 314
18.4 多重继承中的二义性 314
18.4.1 二义性成员函数 315
18.4.2 二义性数据成员 315
18.4.3 在设计时解决二义性问题 315
18.4.4 不可避免的二义性问题 316
18.5 虚基类 316
18.6 设计的实现 317
18.6.1 类DisplayObject 318
实例18-1 318
18.6.2 类Vehicle 318
实例18-2 318
18.6.3 类Property 319
实例18-3 319
18.6.4 类Asset和Expense 320
实例18-4 320
实例18-5 320
18.6.5 类Computer和Pencile 321
18.6.6 类CompanyCar和LeaseCar 321
实例18-6 321
18.6.7 应用程序 322
实例18-7 322
18.7 回顾 322
第19章 类模板 324
19.1 类模板的基本知识 324
19.2 声明模板类的多个对象 325
19.3 调用类模板的成员函数 325
19.4 声明多个参数 325
实例19-1 326
实例19-2 327
19.5 有界数组类模板 327
实例19-3 328
实例19-4 329
19.6 何时使用类模板 330
19.7 链表模板 330
实例19-5 330
19.7.1 整数值对象链表 334
实例19-6 334
19.7.2 日期对象链表 335
实例19-7 335
19.8 定制模板 336
19.8.1 定制类模板 336
实例19-8 336
19.8.2 定制模板成员函数 337
实例19-9 337
19.8.3 模板的部分定制 338
实例19-10 339
19.9 类模板的默认参数 340
实例19-11 340
第20章 面向对象的程序设计 342
20.1 基本知识 342
20.2 过程化程序设计 342
20.3 面向对象的程序设计 343
20.3.1 面向对象的程序 343
20.3.2 对象 343
20.3.3 抽象 344
20.3.4 封装 345
20.3.5 方法和消息 346
20.3.6 功能性方法 346
20.3.7 数据类型方法 346
20.3.8 隐式类型转换方法 347
20.3.9 成员函数 347
20.3.10 继承 347
20.3.11 单继承 348
20.3.12 多重继承 348
20.3.13 类的关系 348
20.3.14 多态性 349
20.4 小结 349
第21章 C++标准库 350
21.1 类std∷string 350
21.1.1 构造字符串 350
21.1.2 给字符串赋值 351
21.1.3 字符串连接 351
21.1.4 字符串的下标 351
21.1.5 字符串的比较 351
21.1.6 子串 351
21.1.7 搜索字符串 352
21.1.8 字符串操作 352
21.2 输入/输出流 352
21.2.1 流类 353
21.2.2 缓冲输出 353
21.2.3 格式化输出 354
实例21-1 357
实例21-2 358
实例21-3 359
实例21-4 359
实例21-5 360
实例21-6 361
21.2.4 文件的输入/输出 361
21.3 类std∷complex 363
实例21-7 364
21.4 标准模板类 364
21.5 标准异常 364
实例21-8 365
第22章 字符串输出与处理 367
22.1 格式化输出 367
实例22-1 367
22.2 操纵算子、标志和成员函数 368
22.2.1 函数ios∷width 368
实例22-2 368
22.2.2 操纵算子std∷setw 368
实例22-3 368
22.2.3 函数std∷ios∷fill 369
实例22-4 369
22.2.4 输出对齐 370
实例22-5 370
22.2.5 操纵算子setprecision 371
实例22-6 371
22.2.6 科学记数法和定点记数法 371
实例22-7 372
22.2.7 函数std∷ios∷setf和std∷ios∷unsetf 372
22.2.8 格式化标志 373
22.2.9 格式化操纵算子 373
22.2.10 格式化函数 373
实例22-8 374
实例22-9 375
实例22-10 375
第23章 输入流和输出流 376
23.1 文件流类的层次结构 376
23.2 类std∷ofstream 376
实例23-1 376
实例23-2 377
实例23-3 378
实例23-4 379
实例23-5 380
23.3 类ifstream 381
实例23-6 381
23.3.1 读取文件直至文件结束 382
实例23-7 382
23.3.2 在文件中定位 382
实例23-8 382
实例23-9 383
23.3.3 读取和写入流文件 384
实例23-10 384
23.3.4 文件和流的关联与解除关联 384
实例23-11 385
23.4 二进制文件与文本文件 385
23.5 类std∷fstream 386
实例23-12 386
第24章 标准模板库 387
24.1 为什么需要STL 387
24.2 STL编程模型 387
24.2.1 序列 388
24.2.2 容器适配器 388
24.2.3 关联式容器 389
24.2.4 指示器 389
24.2.5 算法 390
24.2.6 函数对象参数 390
24.2.7 内存分配器 390
第25章 序列容器 391
25.1 序列容器简介 391
25.2 向量类模板 391
实例25-1 392
25.2.1 插入和访问向量元素 393
实例25-2 393
实例25-3 394
25.2.2 删除向量元素 394
实例25-4 394
实例25-5 395
25.2.3 向量的比较 396
实例25-6 396
25.2.4 向量的成员函数 397
25.3 双端队列类模板 398
实例25-7 398
25.3.1 插入和访问双端队列的元素 399
实例25-8 399
实例25-9 400
25.3.2 删除双端队列的元素 401
实例25-10 401
实例25-11 402
25.3.3 比较双端队列 403
实例25-12 403
25.3.4 双端队列的成员函数 404
25.4 链表类模板 404
实例25-13 405
25.4.1 插入链表元素 406
实例25-14 406
实例25-15 406
25.4.2 删除链表元素 407
实例25-16 407
实例25-17 408
25.4.3 比较链表 409
实例25-18 409
25.4.4 链表成员函数 410
25.5 容器适配器std∷stack 411
实例25-19 411
25.6 容器适配器std∷queue 412
实例25-20 413
25.7 容器适配器std∷priority_queue 414
实例25-21 414
第26章 关联式容器 416
26.1 关联式容器简介 416
26.2 类模板std∷set 416
实例26-1 417
26.2.1 插入集合元素 417
实例26-2 417
26.2.2 删除集合中的元素 418
实例26-3 418
26.2.3 对集合进行搜索 419
实例26-4 419
26.2.4 在集合之间进行比较 420
实例26-5 420
26.2.5 集合的成员函数 422
26.3 类模板std∷multiset 422
实例26-6 423
26.3.1 插入std∷multiset元素 424
实例26-7 424
26.3.2 删除多重集合的元素 425
实例26-8 425
26.3.3 对std∷multiset进行搜索 426
实例26-9 426
26.3.4 在std∷multiset集合之间进行比较 427
实例26-10 427
26.3.5 多重集合的成员函数 428
26.4 类模板std∷map 429
实例26-11 430
26.4.1 插map元素 430
实例26-12 431
实例26-13 432
26.4.2 删除映射中的元素 432
实例26-14 432
26.4.3 对映射进行搜索 433
实例26-15 434
26.4.4 在映射之间进行比较 434
实例26-16 435
26.4.5 映射成员函数 436
26.5 类模板std∷multimap 437
实例26-17 437
26.5.1 插入multimap元素 438
26.5.2 删除多重映射的元素 438
实例26-18 438
26.5.3 搜索多重映射 439
实例26-19 439
26.5.4 对多重映射进行比较 441
实例26-20 441
26.5.5 多重映射的成员函数 442
26.6 类模板std∷bitset 443
26.6.1 在位集合中对位进行操作 443
实例26-21 443
26.6.2 在位集合中测试位 445
实例26-22 445
26.6.3 比较位集合 446
实例26-23 446
26.6.4 位集合的成员函数 447
26.7 用户定义的谓词 447
实例26-24 448
26.8 小结 450
第27章 通用算法 451
27.1 通用算法简介 451
27.2 非修正序列算法 451
实例27-1 452
实例27-2 453
实例27-3 454
27.3 修正序列算法 455
实例27-4 456
实例27-5 457
实例27-6 458
实例27-7 460
27.4 排序算法 461
实例27-8 463
实例27-9 465
实例27-10 466
实例27-11 467
实例27-12 469
27.5 数值算法 471
实例27-13 471
实例27-14 472
实例27-15 473
实例27-16 474
第28章 指示器 477
28.1 指示器简介 477
28.2 输入指示器 477
实例28-1 477
28.3 输出指示器 479
实例28-2 479
28.4 前向指示器 480
实例28-3 480
28.5 双向指示器 481
实例28-4 481
28.6 随机访问指示器 483
实例28-5 483
28.7 特殊用途指示器 485
28.7.1 流指示器 485
实例28-6 485
实例28-7 486
28.7.2 指示器适配器 488
实例28-8 488
实例28-9 490
实例28-10 491
第29章 C++异常处理 493
29.1 C中的异常处理 493
29.2 C++中的异常处理 495
29.2.1 try块 495
29.2.2 catch异常处理器 495
29.2.3 throw语句 496
29.2.4 try/throw/catch系列 496
实例29-1 496
实例29-2 498
29.2.5 异常情况指定 499
29.2.6 不可预见的异常 499
29.2.7 catch-all异常处理模块 499
实例29-3 500
29.2.8 从处理模块中抛出异常 501
实例29-4 501
29.2.9 没有被捕获的异常 502
实例29-5 502
实例29-6 503
29.3 在抛出的异常中进行选择 504
29.4 异常情况以及没有被释放的资源 506
29.5 一个改进的计算器程序 506
实例29-7 506
第30章 名字空间 511
30.1 名字空间简介 511
30.2 有关名字空间的成员 512
实例30-1 512
30.3 using namespace语句 512
实例30-2 512
实例30-3 513
实例30-4 514
30.4 定义名字空间 514
实例30-5 514
30.5 嵌套名字空间 515
实例30-6 516
30.6 无名名字空间 516
30.7 名字空间的别名 517
实例30-7 517
第31章 新风格类型转换和typeid运算符 519
31.1 新风格类型转换 519
31.1.1 动态类型转换 519
实例31-1 520
实例31-2 521
31.1.2 静态类型转换 523
实例31-3 523
31.1.3 重新解释类型转换 524
实例31-4 524
31.1.4 常类型转换 525
实例31-5 525
31.2 typeid运算符 526
实例31-6 526
第32章 区域表示 528
32.1 国际化元素 528
32.2 std∷locale类 529
32.2.1 标准侧面 529
32.2.2 默认区域表示与全局区域表示 529
32.3 生成区域表示对象 529
实例32-1 531
32.4 生成混合区域表示 532
实例32-2 532
32.5 流与区域表示 533
实例32-3 533
32.6 操作侧面 534
实例32-4 534
附录A 数值系统 536
附录B 运算符的优先级与结合律 543
附录C ASCII字符集 544
附录D C与C++的区别 545
附录E 标准C++特性总结 547
附录F 标准异常 551
附录G C++术语与概念 552
练习题 587
练习题答案 599
教师选用习题 611
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《AutoCAD 2019 循序渐进教程》雷焕平,吴昌松,陈兴奎主编 2019
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《Photoshop CC 2018基础教程》温培利,付华编著 2019
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《英语自学进阶教程全6册 3》爱尔兰迪尔德丽出版社著 2019
- 《雅马哈管乐队训练教程 降E调单簧管 分谱》Japan Band Clinic委员会 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《中国电子政务发展报告 2018-2019 数字中国战略下的政府管理创新》何毅亭主编 2019
- 《陶瓷工业节能减排技术丛书 陶瓷工业节能减排与污染综合治理》罗民华著 2017