第一章 程序设计语言的基本概念 1
1.1 程序 1
1.2 虚拟计算机 2
1.3 抽象和结构 4
1.4 程序设计语言的实现 6
1.5 程序设计语言的元素 9
1.6 C++的词法元素 12
1.7 C++程序的结构 14
1.8 小结 17
1.9 练习 18
第二章 基本数据类型和表达式 19
2.1 对象和存储 19
2.2 数据类型 21
2.3 C++的基本数据类型 22
2.4 常量 25
2.5 对象声明 27
2.6 表达式 30
2.7 赋值 37
2.8 表达式中的类型强制 39
2.10 小结 40
2.9 常量表达式 40
2.11 练习 41
第三章 控制结构 42
3.1 概述 42
3.2 简单顺序 43
3.3 选择 44
3.4 循环 52
3.5 复杂结构的语句 56
3.6 表达决策和条件 64
3.7 转移语句 66
3.9 练习 70
3.8 小结 70
第四章 函数 72
4.1 函数的基本概念 72
4.2 函数定义和调用 78
4.3 参数传递机制 79
4.4 函数的其它特性 84
4.5 异常处理 91
4.6 小结 95
4.7 练习 95
5.1 抽象数据类型 99
第五章 类 99
5.2 类的结构 101
5.3 构造函数和析构函数 105
5.4 成员函数的其它特性 109
5.5 小结 114
5.6 练习 114
第六章 程序结构 116
6.1 模块化与信息隐藏 116
6.2 作用域 117
6.3 可见性 120
6.4 对象的生存期 121
6.5 数据与函数 124
6.6 静态成员 125
6.7 友元 128
6.8 嵌套类 130
6.9 前向引用声明 132
6.10 编译指令 134
6.11 多文件结构 142
6.12 小结 146
6.11 练习 146
7.1 概述 148
第七章 构造复杂对象 148
7.2 数组对象 149
7.3 指针对象 155
7.4 指针对象与数组对象的关系 160
7.5 引用 165
7.6 堆对象 168
7.7 组合对象 172
7.8 指针数组 177
7.9 this指针 181
7.11 练习 182
7.10 小结 182
第八章 类类型 185
8.1 拷贝初始化构造函数 185
8.2 赋值 192
8.3 const关键字 196
8.4 类型表达式 201
8.5 类型强制 202
8.6 类型强制表达式 208
8.7 小结 213
8.8 练习 213
第九章 操作符重载 215
9.1 概述 215
9.2 操作符重载的一般规则 216
9.3 特殊操作符的重载 225
9.4 小结 247
9.5 练习 248
第十章 串 250
10.1 串的存储结构 250
10.2 串操作 253
10.3 串类 258
10.4 命令行参数 271
10.6 练习 274
10.5 小结 274
第十一章 继承 276
11.1 概述 276
11.2 访问控制 282
11.3 保护的成员 287
11.4 友元与继承 288
11.5 访问权限调整 289
11.6 成员名限定 290
11.7 构造函数和析构函数与继承 291
11.8 子类型化 294
11.9 动态束定与虚函数 301
11.10 纯虚函数与抽象类 309
11.11 虚析构函数 317
11.12 动态类型识别 321
11.13 静态类型强制与动态类型强制 324
11.14 派生类的赋值与初始化语义 326
11.15 保护的构造函数和析构函数 327
11.16 保护的基类 327
11.17 小结 328
11.18 练习 329
12.1 概述 330
第十二章 多继承 330
12.2 构造函数和析构函数 332
12.3 虚函数 336
12.4 二义性错误 341
12.5 虚基类 348
12.6 虚基类与构造函数 351
12.7 虚基类与虚函数 353
12.8 多继承与类型强制 354
12.9 小结 357
12.10 练习 357
13.2 函数模板 358
13.1 概述 358
第十三章 模板 358
13.3 类模板 364
13.4 类模板用作函数的参数 368
13.5 类模板用作基类 369
13.6 模板的引用声明与定义声明 378
13.7 友元与静态成员 381
13.8 小结 382
13.9 练习 382
第十四章 异常处理 383
14.1 概述 383
14.2 异常接口规范声明 387
14.3 异常分类 388
14.4 构造函数与析构函数 393
14.5 xalloc类 397
14.6 小结 397
14.7 练习 397
第十五章 枚举类型和联合类型 399
15.1 枚举类型 399
15.2 联合类型 401
15.3 练习 408
16.1 位操作 409
第十六章 位操作和位段 409
16.2 位段 422
16.3 练习 429
第十七章 流类库 431
17.1 概述 431
17.2 流数据抽象 431
17.3 格式控制 438
17.4 检测流错误 441
17.5 流的提取操作 442
17.6 流的插入操作 444
17.7 随机定位读写位置 445
17.8 用于内存对象的流类 446
17.9 流对象的赋值与初始化 448
17.10 自定义操作子 450
17.11 文件结构 453
17.12 小结 459
17.13 练习 459
附录A ASCII表 461
附录B 常用数学库函数 464
附录C C++中的C 466
参考文献 476