第1章 C++语言基础 1
1.1 程序设计基础 1
1.1.1 数据类型 1
1.1.2 命名空间 5
1.1.3 常用运算及其运算符 6
1.1.4 语句与控制结构 12
1.2 函数与引用 16
1.2.1 函数的基本概念 16
1.2.2 C++新增的函数机制 17
1.2.3 引用及其应用 23
1.2.4 综合应用举例 29
1.3 数组、指针与字符串 30
1.3.1 数组及其应用 30
1.3.2 指针及其应用 41
1.3.3 字符串及其应用 46
1.3.4 综合应用举例 51
1.4 结构类型 53
1.4.1 结构定义与应用 53
1.4.2 链表 57
1.4.3 综合应用举例 61
本章小结 63
习题 64
第2章 面向对象概述 65
2.1 基本概念 65
2.1.1 面向对象的方法 65
2.1.2 面向对象的特性 67
2.2 面向对象的分析与设计 68
2.2.1 面向对象的分析 69
2.2.2 面向对象的设计 69
2.3 UML 69
2.3.1 概述 69
2.3.2 类图 70
本章小结 74
习题 75
第3章 类与对象的定义 76
3.1 类的定义 76
3.1.1 类定义的语法 76
3.1.2 由类定义对象 83
3.1.3 访问函数与工具函数 87
3.1.4 应用举例 88
3.2 对象的定义 90
3.2.1 构造函数 90
3.2.2 析构函数 94
3.2.3 默认构造函数 96
3.2.4 转换构造函数 100
3.2.5 复制构造函数 102
3.2.6 对象的赋值 108
3.2.7 应用举例 111
3.3 类的复合 115
3.3.1 类之间的复合关系 115
3.3.2 应用举例 117
3.4 类成员指针 119
3.4.1 指向成员的指针的定义和使用 119
3.4.2 应用举例 121
3.5 综合应用举例 122
本章小结 123
习题 125
第4章 类的几个主题 126
4.1 this指针 126
4.1.1 this指针概述 126
4.1.2 this的用法 128
4.1.3 应用举例 130
4.2 const关键字 132
4.3 new/delete运算符 139
4.3.1 new/delete概述 139
4.3.2 基本用法 140
4.3.3 复杂用法 143
4.3.4 应用举例 148
4.4 friend关键字 149
4.4.1 友元关系及其声明 149
4.4.2 友元函数 150
4.4.3 友元类 151
4.4.4 应用举例 152
4.5 static关键字 153
4.5.1 在对象之间共享数据 153
4.5.2 static数据成员 153
4.5.3 static成员函数 155
4.5.4 应用举例 158
本章小结 160
习题 161
第5章 运算符重载 162
5.1 概述 162
5.1.1 问题的引出 162
5.1.2 运算符重载的语法规则 164
5.1.3 运算符重载实现的形式 165
5.2 成员函数形式的运算符重载 167
5.2.1 算术运算类及相关运算符的重载 167
5.2.2 关系运算类及逻辑运算类运算符的重载 172
5.3 友元函数形式的运算符重载 175
5.3.1 友元函数形式 175
5.3.2 重载流插入运算符和流提取运算符 179
5.4 几种常用运算符的重载 182
5.4.1 增量/减量运算符的重载 182
5.4.2 下标运算符的重载 186
5.4.3 函数调用运算符的重载 188
5.4.4 转换运算符的重载 193
5.5 综合应用举例 195
本章小结 199
习题 201
第6章 模板 202
6.1 概述 202
6.2 函数模板 203
6.2.1 函数模板 203
6.2.2 模板函数 203
6.2.3 函数模板的重载 207
6.2.4 程序举例 209
6.3 类模板 210
6.3.1 类模板定义的语法 210
6.3.2 类模板的实例化 211
6.3.3 类模板的模板参数表 212
6.3.4 程序举例 214
6.4 综合应用 220
本章小结 224
习题 224
第7章 标准模板库 226
7.1 概述 226
7.1.1 泛型编程 226
7.1.2 STL组件与标准头文件 228
7.1.3 区间 229
7.2 函数对象与算法 230
7.2.1 算法概述 230
7.2.2 函数对象与函数配接器 235
7.2.3 算法应用 238
7.3 容器 244
7.3.1 容器分类 244
7.3.2 容器共有操作 244
7.3.3 序列式容器之deque 249
7.3.4 关联式容器之set/multiset 251
7.3.5 关联式容器之map/multimap 254
7.4 迭代器 257
7.4.1 基本概念 257
7.4.2 迭代器操作 258
7.4.3 迭代器分类 259
7.4.4 迭代器的特性 261
7.4.5 迭代器相关的函数 262
7.4.6 Insert迭代器 263
7.4.7 Stream迭代器 264
本章小结 265
习题 266
第8章 继承与派生 267
8.1 概述 267
8.1.1 继承的引入 267
8.1.2 继承的机制 269
8.1.3 继承与复合 270
8.2 继承的基本概念 271
8.2.1 基类和派生类 271
8.2.2 直接基类和间接基类 272
8.2.3 单继承和多继承 273
8.3 继承的访问控制权限 274
8.3.1 三种继承方式 274
8.3.2 公有继承 276
8.4 派生类对象的构造 277
8.4.1 派生类的构造函数 277
8.4.2 对象构造的几个顺序 284
8.4.3 应用举例 286
8.5 关于继承的几个问题 290
8.5.1 成员访问冲突及成员名限定法 290
8.5.2 成员覆盖 290
8.5.3 赋值兼容规则 291
8.5.4 虚基类 293
8.6 综合应用 296
本章小结 299
习题 300
第9章 虚函数与多态性 302
9.1 概述 302
9.1.1 程序关联的两种方式 302
9.1.2 多态性 303
9.1.3 问题的引出 303
9.2 虚函数 305
9.2.1 定义语法 305
9.2.2 程序举例 305
9.2.3 虚析构函数 309
9.3 抽象类 311
9.3.1 纯虚函数 311
9.3.2 抽象基类 312
9.3.3 程序举例 314
9.4 综合应用举例 317
本章小结 321
习题 322
第10章 C++的I/O流 323
10.1 I/O流库 323
10.1.1 流与I/O流库 323
10.1.2 I/O流对象 325
10.2 标准I/O流 327
10.2.1 标准输出流 327
10.2.2 标准输入流 331
10.2.3 应用举例 340
10.3 格式化I/O 343
10.3.1 格式控制 343
10.3.2 格式标志位 343
10.3.3 成员函数 346
10.3.4 流操纵算子 348
10.3.5 自定义流操纵算子 350
10.4 文件I/O流 352
10.4.1 基本概念 352
10.4.2 文件操作 353
10.4.3 应用举例 358
10.5 字符串I/O流 361
10.5.1 字符串I/O流 361
10.5.2 应用举例 362
10.6 流错误状态及错误处理 363
10.6.1 流的错误状态位及状态函数 363
10.6.2 流错误处理 364
本章小结 365
习题 366
第11章 异常处理 367
11.1 概述 367
11.1.1 程序错误和异常 367
11.1.2 异常处理的运行模型 368
11.2 C++的异常处理 369
11.2.1 C++的异常机制 369
11.2.2 异常捕获与处理的常见规则 373
本章小结 380
习题 380
参考文献 381