上编:C++语言 1
第1章 C++程序设计入门 1
1.1 软件、程序、语言、开发工具 1
1.2 结构化程序设计与面向对象程序设计 4
1.3 从C到C++ 7
1.4 C++程序开发过程 8
1.5 最简单的C++程序 9
1.6 函数 11
1.7 小结 14
1.8 习题 14
2.1 C++字符集与保留字 16
第2章 基本数据类型与输入输出 16
2.2 C++的数据类型 17
2.3 变量 19
2.4 常量 20
2.5 I/O流控制 25
2.6 printf()函数与scanf()函数 29
2.7 小结 33
2.8 习题 33
第3章 运算符与表达式 36
3.1 运算符与表达式概述 36
3.2 表达式语句 39
3.3 算术运算符和赋值表达式 41
3.4 关系运算与逻辑运算 45
3.5 位操作运算符 47
3.6 条件运算符 48
3.7 逗号表达式 49
3.8 sizeof运算 49
3.9 求值次序与副作用 50
3.10 小结 51
3.11 习题 51
第4章 C++语句 54
4.1 表达式语句和复合语句 54
4.2 选择语句 55
4.3 循环语句 61
4.4 转向语句 64
4.5 过程应用 67
4.7 习题 70
4.6 小结 70
第5章 函数 72
5.1 函数概述 72
5.2 函数的说明、定义与调用 74
5.3 全局变量与局部变量 77
5.4 函数调用机制 79
5.5 函数的递归调用 81
5.6 内联函数 85
5.7 函数重载 86
5.8 函数的默认参数 87
5.9 过程应用 88
5.11 习题 89
5.10 小结 89
第6章 C++程序结构 90
6.1 外部存储类型 90
6.2 静态存储类型 91
6.3 作用域 93
6.4 可见性 95
6.5 生命期 96
6.6 预处理 96
6.7 头文件 98
6.8 多文件结构 99
6.9 过程应用 99
6.11 习题 101
6.10 小结 101
第7章 数组 102
7.1 一维数组定义 102
7.2 访问数组元素 103
7.3 数组的初始化 103
7.4 数组作为函数参数 104
7.5 多维数组 105
7.6 数组应用 108
7.7 小结 115
7.8 习题 115
第8章 指针 116
8.1 指针的基本概念 116
8.2 指针运算 119
8.3 指针与数组 120
8.4 指针与函数 122
8.5 字符指针 125
8.6 指针数组 126
8.7 函数指针 128
8.8 const指针 130
8.9 命令行参数 131
8.10 void指针类型 131
8.11 堆内存管理 132
8.12 小结 133
8.13 习题 133
9.1 引用的说明 135
第9章 引用 135
9.2 用引用来传递函数参数 136
9.3 返回多个值 138
9.4 返回引用 139
9.5 函数调用作为左值 140
9.6 用const限定引用 141
9.7 小结 142
9.8 习题 142
第10章 结构与联合 143
10.1 结构 143
10.2 结构与数组 150
10.3 结构指针变量作函数参数 152
10.4 返回结构 153
10.5 链表 154
10.6 联合 158
10.7 枚举 161
10.8 小结 162
10.9 习题 162
下编:面向对象程序设计 163
第11章 类 163
11.1 高级语言与面向对象的语言 163
11.2 面向对象的方法 164
11.3 面向对象的软件开发 166
11.4 类定义 167
11.5 类的使用——对象 170
11.6 类与结构 174
11.7 类的成员函数的定义 175
11.8 调用成员函数的高级应用 179
11.9 小结 182
11.10 习题 182
第12章 构造函数与析构函数 183
12.1 构造函数的必要性 183
12.2 构造函数的使用 185
12.3 析构函数 190
12.4 带参数的构造函数 192
12.5 构造函数的重载 194
12.6 默认构造函数 199
12.7 类组合中类成员初始化的困惑 201
12.8 类组合中类成员的构造 204
12.9 对象构造的顺序 207
12.10 小结 209
12.11 习题 210
第13章 堆与拷贝构造函数 212
13.1 C++程序内存格局 212
13.2 需要new和delete的原因 212
13.3 分配堆对象 213
13.4 拷贝构造函数 215
13.5 默认拷贝构造函数 217
13.6 浅拷贝与深拷贝 219
13.7 临时对象 222
13.8 无名对象 224
13.9 构造函数用于类型转换 225
13.10 小结 226
13.11 习题 226
第14章 C++数据共享与程序结构 231
14.1 作用域与可见性 231
14.2 生存期 233
14.3 数据与函数 236
14.4 静态成员 238
14.5 友元 243
14.6 共享数据的保护 247
14.7 多文件结构 251
14.8 小结 256
14.9 习题 257
第15章 继承与派生 259
15.1 继承与派生 259
15.2 访问控制 263
15.3 派生类的构造和析构函数 269
15.4 派生类成员的标识与访问 274
15.5 赋值兼容规则 283
15.6 程序实例——一个小型公司的人员信息管理系统 285
15.7 小结 292
15.8 习题 293
16.1 多态概述 294
第16章 多态与虚函数 294
16.2 运算符重载 295
16.3 赋值运算符重载 303
16.4 其他运算符的重载 307
16.5 虚函数 311
16.6 抽象类 314
16.7 程序实例——对小型公司人员信息管理系统的改进 316
16.8 小结 321
16.9 习题 322
第17章 模板 323
17.1 模板概述 323
17.2 函数模板及其应用 325
17.3 类模板 329
17.4 类模板的高级应用 334
17.6 习题 343
17.5 小结 343
第18章 C++的I/O流 345
18.1 C++I/O流概述 345
18.2 输出流 347
18.3 输入流 355
18.4 输入/输出流 360
18.5 小结 360
18.6 习题 360
19.1 异常处理概述 362
19.2 C++异常处理的实现 362
第19章 C++异常处理 362
19.3 异常处理中对象的构造与析构 367
19.4 小结 370
19.5 习题 370
附录 基于UML的面向对象标记 373
1 类图 373
2 聚合与组合 375
3 泛化 377
4 依赖 377
5 接口 378
6 基于Metamill的面向对象模型 378
参考文献 380
后记 381