第1章 C++概述 1
1.1 面向对象编程 1
1.2 面向对象编程功能 2
1.3 集中讨论数据 2
1.4 初识C++ 3
1.5 C++对C的扩充:概述 6
1.5.1 C的局限性 6
1.5.2 C++的扩充和变化 6
1.6 两个启发性的例子 12
1.5.3 类 12
1.6.1 复数数据类型 13
1.6.2 个人数据 20
1.7 练习 22
第2章 C++类和其他C++基础 23
2.1 术语 23
2.2 常量对象 23
2.3 类 25
2.4 类成员 27
2.4.1 特殊变量this 27
2.4.2 构造函数 29
2.4.3 类对象 30
2.4.4 初始化 31
2.4.5 初始化:初始化器和成员赋值 32
2.4.6 数组初始化 34
2.4.7 析构函数 36
2.4.8 成员函数 37
2.4.9 操作符 38
2.5 堆栈:一个例子 38
2.5.1 堆栈声明 39
2.5.2 堆栈实现 40
2.6 复制类对象 41
2.6.1 赋值 42
2.6.2 初始化 44
2.6.3 初始化与赋值 45
2.7 流输入/输出 46
2.8 调用C函数 47
2.9 数参数的默认值 48
2.10 实例 49
2.10.1 双向链表 49
2.10.2 一个函数跟踪类 54
2.11 练习 55
3.1.1 操作符NEW 57
3.1 对象的动态创建和删除 57
第3章 高级C++功能 57
3.1.2 操作符DELETE 58
3.2 友元 59
3.2.1 友元的优点 61
3.2.2 友元实例 61
3.3 常量对象和常量成员函数 64
3.4 引用 65
3.4.1 引用变量 65
3.4.2 通过引用传递变量 66
3.4.3 与引用参数对应的变量 68
3.5 类型转换 69
3.5.1 算术转换规则 69
3.5.2 指针转换 70
3.5.3 引用类型转换 70
3.5.4 用户定制的转换 70
3.6 内联函数 74
3.6.1 实例:宏与内联函数 75
3.6.2 关于内联函数的注释 76
3.7 重载 76
3.7.1 操作符重载 77
3.7.2 实例:重载下标和函数调用操作符 80
3.7.3 重载存储分配符NEW 82
3.7.4 重载操作符DELETE 83
3.8 前向(非完全)类声明 84
3.9 非全局类 85
3.9.1 嵌套类:类内的类 85
3.9.2 局部类:函数中的类 86
3.10 静态成员和静态类 86
3.10.1 静态数据成员 86
3.10.2 静态(static)成员函数 87
3.10.3 初始化 87
3.10.4 实例 88
3.11 指向类成员的指针 90
3.12 练习 92
第4章 实例 93
4.1 堆栈 93
4.2 集合 96
4.2.1 使用位数组的集合实现 96
4.2.2 使用列表的集合实现 104
4.3 交叉引用生成器 109
4.4 迭代 114
4.5 练习 116
第5章 继承 118
5.1 派生类 119
5.1.1 继承了什么? 120
5.1.2 成员访问:保护成员 122
5.1.3 调整对单个成员的访问 122
5.1.4 具有相同名称的派生类和基类成员函数 123
5.1.5 在派生类和基类之间的转换 124
5.1.6 在派生类和基类对象之间的赋值 124
5.2 多继承 124
5.3 基类的初始化 125
5.4.1 赋值操作符 126
5.4 派生类的赋值和构造函数 126
5.4.2 默认的(无参数的)构造函数 127
5.4.3 复制构造函数 127
5.5 虚函数 128
5.5.1 实例 128
5.5.2 混合 129
5.6 抽象类 130
5.7 虚基类 131
5.8 混淆及其解决办法 132
5.9 VARIANT记录和继承 132
5.10.1 普通列表 133
5.10 实例 133
5.10.2 职工数据 137
5.11 练习 140
第6章 模板 141
6.1 模板声明和定义 141
6.1.1 函数模板 142
6.1.2 类模板 143
6.2 关于模板的更多讨论 144
6.2.1 多态类和函数 144
6.3.1 函数模板交换 145
6.3.2 模板类堆栈 145
6.2.3 友元函数 145
6.3 实例 145
6.2.2 静态成员 145
6.4 练习 147
第7章 MAKE程序:一个大型实例 148
7.1 MK实现概述 151
7.1.1 实现 151
7.1.2 经验 161
7.2 练习 161
8.1 标准头文件 163
第8章 流和其他库 163
8.2 流输入/输出 164
8.2.1 头文件iostream.h 164
8.2.2 输入流 165
8.2.3 输出流 167
8.2.4 输入/输出流 169
8.2.5 控制台 170
8.2.6 流状态 171
8.2.7 扩展流输入/输出库 173
8.2.8 定义新流 175
8.3.1 字符 177
8.2.9 附加的工具 177
8.3 C函数 177
8.3.2 算术 178
8.3.3 非局部跳转 180
8.3.4 信号处理 181
8.3.5 可变数量的参数 181
8.3.6 输入/输出 183
8.3.7 通用工具 191
8.3.8 字符串操纵 193
8.4 练习 195
9.1 面向对象的软件设计 196
第9章 C++程序开发指南 196
9.2 防止多个类定义 197
9.3 函数原型 198
9.4 通过引用传递参数 198
9.5 常量对象 198
9.6 重载 198
9.7 结构和类 199
9.8 内联函数 199
9.9 继承 199
第10章 结论 201
10.1 异常处理 201
10.1.3 CATCH子句 202
10.1.1 异常模型 202
10.1.2 丢弃(凸起)异常 202
10.1.4 捕获异常 203
10.1.5 数丢弃的异常 203
10.1.6 再次丢弃(再次凸起)异常 204
10.1.7 最后的注释 204
10.1.8 例子 204
10.2 C++和软件设计 207
10.3 练习 210
附录 C++的C子集 211