第一章 基本输入/输出流 1
1.1 标准的输入/输出流 2
1.1.1 格式化输出 4
1.1.2 标准输入流 5
1.2 C++的注解 7
1.3 原型 7
1.4 C++的关键字 9
1.5 小结 10
第二章 对C的扩展 11
2.1 函数的缺补参数变量 11
2.2 变量说明的位置 13
2.3 全局作用域分解操作符 15
2.4 在线函数(inline) 16
2.5 常值变量(const) 17
2.6 枚举数据类型(enum) 18
2.7 与C语言连接说明 21
2.8 匿名联合 23
2.9 小结 25
第三章 C++的自由存储区 26
3.1 分配和释放内存操作符new和delete 26
3.1.1 分配固定维的数组 27
3.1.2 分配动态数组 28
3.2 自由存储区用完 32
3.2.1 分配内存出错处理指针_new_handler 32
3.2.2 设置出错处理指针set_new_handler 32
3.2.3 一个释放内存的机会 34
3.3 建立用户分配和释放内存操作符new和delete 34
3.4 小结 39
第四章 重复装载函数 40
4.1 不同运算的重复装载函数 40
4.2 不同格式的重复装载函数 42
4.3 小结 43
第五章 C++的结构 44
5.1 作为数据类型的结构 44
5.2 带有函数的结构 46
5.2.1 面向对象程序语言一瞥 47
5.2.2 加入函数到结构中 47
5.3 同一结构的多个实例 48
5.4 重复装载的结构函数 50
5.5 小结 52
第六章 引用 53
6.1 引用是替代名 54
6.2 必须将引用初始化 56
6.3 隐藏的匿名目标 57
6.4 引用最适合与用户定义的数据类型一起工作 59
6.5 作为函数参数的引用 60
6.5.1 引用改进了参数传递中的额外开销 60
6.5.2 引用删除了指针标记 62
6.5.3 引用调用 63
6.5.4 何时用指针而不用引用 65
6.6 返回引用 66
6.7 不能用引用做的事 68
6.8 小结 69
第七章 类 70
7.1 设计一个类 70
7.1.1 定义一个类 70
7.1.2 类的说明 72
7.1.3 类的成员 73
7.1.4 类目标的作用域 76
7.1.5 在线函数inline 76
7.1.6 带有缺补变量的构造函数 78
7.1.7 重复装载构造函数 79
7.2 类的转换 80
7.2.1 转换函数 81
7.2.2 转换类 85
7.2.3 调用转换函数 87
7.2.4 哪里发生转换 89
7.3 处理私有数据成员 94
7.4 友元 97
7.4.1 友元类 98
7.4.2 友元函数 101
7.5 类和引用 105
7.6 析构函数 105
7.7 指针this 113
7.7.1 返回指针this 113
7.7.2 用指针this做表的连接 118
7.7.3 如何不用指针this 120
7.8 类目标的数组 121
7.8.1 类数组的构造函数 122
7.8.2 类数组的析构函数 123
7.9 静态成员 125
7.9.1 静态数据成员 125
7.9.2 静态函数成员 128
7.9.3 静态公有成员 131
7.10 类和自由存储区 137
7.10.1 使用操作符new和delete管理类目标的作用域 137
7.10.2 构造函数与new、析构函数与delete 137
7.10.3 自由存储区和类数组 139
7.10.4 重复装载类的new和delete 141
7.11 类的源程序和目标文件管理 146
7.11.1 类的定义在题头文件中 146
7.11.2 类的函数成员在函数库中 147
7.12 小结 147
第八章 重复装载运算符 148
8.1 二元算术运算符 150
8.1.1 类的成员运算符函数 150
8.1.2 非成员运算符函数 152
8.2 关系运算符 155
8.3 赋值运算符 157
8.4 自动增量和自动减量 158
8.5 地址和引用运算符 160
8.6 一元加和减运算符 162
8.7 下标运算符 163
8.8 函数调用运算符 167
8.9 指向成员的运算符 168
8.10 小结 172
第九章 类的继承 173
9.1 基本类和派生类 173
9.2 简单继承 175
9.2.1 设计派生类 176
9.2.2 保护成员 177
9.2.3 公有类和私有类 178
9.2.4 在基本类和派生类中的构造函数 179
9.2.5 派生类中的取代成员 180
9.3 从派生类导出的派生类 182
9.4 指向基本类和派生类的指针 185
9.5 伴随基本类和派生类的全局作用域分解运算符 186
9.6 基本类和派生类的引用 188
9.7 虚函数 189
9.7.1 带有虚函数的类Time 189
9.7.2 代替虚函数的取代 193
9.7.3 没有派生类取代的虚函数 194
9.7.4 纯虚函数 196
9.7.5 虚函数和多路派生类 198
9.7.6 虚函数的虚函数 200
9.8 基本类和派生类中的析构函数 204
9.9 多路继承 208
9.9.1 多路继承的二义性 212
9.9.2 多路继承构造函数的执行 212
9.9.3 多路继承类析构函数的执行 213
9.10 虚拟的基本类 213
9.11 小结 217
第十章 C++的高级输入/输出流 219
10.1 流 220
10.1.1 类ios 220
10.1.2 类ostream 220
10.1.3 类istream 221
10.1.4 类iostream 221
10.2 缓冲输出 221
10.3 格式化的输出 223
10.3.1 输出宽度 224
10.3.2 输出的调整 227
10.3.3 精度 228
10.3.4 操作符、标记符和成员函数 231
10.4 输入/输出成员函数 231
10.4.1 输出成员函数put和write 231
10.4.2 输入成员函数get和getline 232
10.5 重复装载插入<<和提取>>操作符 237
10.5.1 重复装载<< 237
10.5.2 重复装载>> 239
10.6 文件的输入/输出 240
10.6.1 输出类ofstream 241
10.6.2 输入类ifstream 243
10.6.3 查寻 245
10.6.4 类fstream 247
10.6.5 打开和关闭文件流 248
10.6.6 如何打开文件 250
10.6.7 测试错误 252
10.7 小结 253
结束语 254