第1章 概述 1
1.1 C++语言的起源 1
1.2 C++语言与C语言的关系 1
1.3 C++语言与面向对象程序设计 2
1.4 C++程序的开发步骤 3
1.5 C++程序的基本结构 4
1.5.1 简单的C++程序 4
1.5.2 C++程序的组成 4
1.5.3 C++语言编程风格 6
1.6 基本输入 6
1.7 小结 7
1.8 习题 7
第2章 C++语言编程基础 9
2.1 字符集 9
2.2 词法记号 9
2.3 基本数据类型 10
2.4 变量与常量 12
2.4.1 变量 12
2.4.2 常量 13
2.5 枚举与数组 16
2.5.1 枚举 16
2.5.2 数组 19
2.6 关键字typedef 23
2.7 运算符 23
2.8 表达式 27
2.9 数据类型转换 31
2.9.1 隐式转换 31
2.9.2 强制类型转换 32
2.10 控制语句 33
2.10.1 选择语句 34
2.10.2 循环语句 39
2.10.3 转移语句 44
2.11 小结 47
2.12 习题 48
第3章 函数 51
3.1 函数的定义及调用 51
3.1.1 定义函数 51
3.1.2 声明函数 52
3.1.3 函数调用 53
3.1.4 函数调用的执行过程 56
3.2 函数调用时参数的传递 57
3.3 内联函数 58
3.4 带默认形参值的函数 59
3.5 作用域 63
3.5.1 作用域分类 63
3.5.2 局部变量与全局变量 66
3.6 递归调用 68
3.7 函数重载 70
3.8 库函数 73
3.9 头文件 75
3.9.1 头文件的编写原则 75
3.9.2 头文件保护符 75
3.9.3 使用头文件 76
3.10 小结 76
3.11 习题 77
第4章 类与对象 79
4.1 概述 79
4.2 类的定义 79
4.3 定义对象 84
4.4 构造函数与析构函数 88
4.4.1 构造函数 88
4.4.2 析构函数 93
4.5 类的组合 94
4.6 静态成员 98
4.6.1 静态数据成员 98
4.6.2 静态成员函数 100
4.7 友元 101
4.7.1 友元函数 101
4.7.2 友元类 103
4.8 常对象、常数据成员与常成员函数 103
4.8.1 常对象 104
4.8.2 常数据成员 104
4.8.3 常成员函数 105
4.9 类作用域及对象生存期 107
4.9.1 类作用域 107
4.9.2 对象生存期 107
4.10 结构和联合 110
4.10.1 结构 110
4.10.2 联合 110
4.11 小结 111
4.12 习题 111
第5章 指针与引用 115
5.1 指针 115
5.1.1 数据存储 115
5.1.2 指针的定义及使用 116
5.1.3 指针运算 120
5.1.4 与对象有关的指针 121
5.1.5 void和const指针 126
5.2 动态内存分配 128
5.2.1 运算符new 129
5.2.2 运算符delete 130
5.3 指针与数组 134
5.3.1 用指针访问数组元素 134
5.3.2 指针数组与数组指针 137
5.4 指针与函数 139
5.4.1 指针作为函数的参数 139
5.4.2 返回指针的函数 142
5.4.3 函数指针 143
5.4.4 带参数的主函数main 150
5.5 字符串 152
5.5.1 C语言风格的字符串 153
5.5.2 string类 154
5.6 引用 157
5.7 引用与函数 158
5.7.1 把引用用作函数参数 158
5.7.2 返回引用的函数 159
5.7.3 拷贝构造函数与对象的引用调用 160
5.8 指针与引用 165
5.9 小结 166
5.10 习题 167
第6章 继承 174
6.1 继承与派生 174
6.2 单继承 175
6.2.1 公有派生 175
6.2.2 私有派生 177
6.2.3 保护派生 178
6.3 多继承 180
6.4 派生类的构造函数与析构函数 182
6.5 二义性问题 187
6.6 虚基类 193
6.7 赋值兼容原则 196
6.8 小结 198
6.9 习题 199
第7章 运算符重载 203
7.1 运算符重载的语法 203
7.2 一元运算符的重载 206
7.3 二元运算符的重载 208
7.4 特殊运算符的重载 209
7.4.1 “=”运算符的重载 209
7.4.2 “++”和“--”运算符的重载 215
7.4.3 “[]”运算符的重载 217
7.5 小结 217
7.6 习题 218
第8章 多态与虚函数 219
8.1 多态性概述 219
8.2 虚函数 219
8.3 抽象类 224
8.4 虚析构函数 227
8.5 综合实例 233
8.6 小结 240
8.7 习题 240
第9章 容器类 242
9.1 数组类与链表类 242
9.1.1 数组类 242
9.1.2 链表类 247
9.2 线性表、栈与队列 255
9.2.1 线性表 255
9.2.2 栈和队列 259
9.3 排序与查找 265
9.3.1 排序 265
9.3.2 查找 268
9.4 小结 270
9.5 习题 270
第10章 模板与标准模板库 271
10.1 函数模板 271
10.2 类模板 272
10.3 标准模板库 280
10.3.1 基本数据结构知识 280
10.3.2 标准模板库简介 281
10.3.3 向量 281
10.3.4 链表的使用 286
10.3.5 双端队列 289
10.3.6 栈与队列 291
10.3.7 集合与映射 294
10.4 小结 298
10.5 习题 298
第11章 输入/输出流 299
11.1 输入/输出流概述 299
11.2 标准输入/输出流 300
11.3 输入/输出格式控制 303
11.4 文件输入/输出 307
11.5 用户自定义类型的输入/输出 311
11.6 综合实例 313
11.7 小结 324
11.8 习题 324
第12章 异常处理 326
12.1 异常处理的基本语法 326
12.2 异常处理的使用 331
12.3 标准C++语言库中的异常类 337
12.4 小结 338
12.5 习题 338
附录 名称空间 339
参考文献 342