第1章 初识C++ 1
1.1 C++简介 1
1.1.1 C++发展史 1
1.1.2 C++的特征 2
1.1.3 C++的应用领域 3
1.1.4 C++主流开发环境 3
1.2 第一个C++程序 4
1.3 C++程序的运行流程 7
1.4 面向对象的基本概念 8
1.4.1 对象与类 8
1.4.2 面向对象的三大特征 9
1.5 本章小结 11
1.6 习题 11
第2章 C++语言编程基础 13
2.1 变量与常量 13
2.1.1 标识符与关键字 13
2.1.2 变量与赋值 14
2.1.3 变量的类型 15
2.1.4 常量 16
2.2 构造数据类型 20
2.2.1 数组 20
2.2.2 枚举 21
2.2.3 结构体 22
2.2.4 联合体 23
2.3 表达式与类型转换 24
2.3.1 表达式 24
2.3.2 自动类型转换 28
2.3.3 强制类型转换 29
2.4 指针 29
2.4.1 内存和地址 29
2.4.2 指针的定义与使用 30
2.4.3 指针与数组 33
2.4.4 指针运算 34
2.4.5 动态内存管理 35
2.5 引用 38
2.6 命名空间 39
2.7 基本控制语句 41
2.7.1 条件语句 41
2.7.2 循环语句 47
2.7.3 转移语句 50
2.8 函数 52
2.8.1 函数的定义 52
2.8.2 函数的参数传递 55
2.8.3 函数与引用 59
2.8.4 函数与const 60
2.8.5 内联函数 61
2.8.6 默认参数的函数 62
2.8.7 函数重载 63
2.9 本章小结 64
2.10 习题 65
第3章 类与对象 66
3.1 类的定义 66
3.2 对象 68
3.2.1 对象的创建 68
3.2.2 对象中成员的访问 69
3.2.3 this指针 71
3.3 类的定义与文件 72
3.4 构造函数 74
3.4.1 构造函数的定义 74
3.4.2 构造函数的调用 75
3.4.3 默认构造函数与无参构造函数 76
3.4.4 拷贝构造函数 77
3.5 析构函数 81
3.6 友元 83
3.6.1 友元函数 83
3.6.2 友元类 86
3.7 静态成员 88
3.7.1 静态数据成员 88
3.7.2 静态成员函数 90
3.8 对象成员 91
3.9 常类型成员 94
3.9.1 常数据成员 94
3.9.2 常成员函数 95
3.10 string类 97
3.11 本章小结 99
3.12 习题 99
第4章 类的继承与派生 101
4.1 继承的基本概念 101
4.2 单一继承 102
4.2.1 派生类的定义格式 102
4.2.2 派生类成员的访问权限 105
4.2.3 赋值兼容规则 111
4.3 多重继承 113
4.4 派生类的构造函数与析构函数 115
4.4.1 单一继承的派生类构造函数与析构函数 115
4.4.2 多重继承的派生类构造函数与析构函数 118
4.5 同名冲突 120
4.5.1 单一继承的同名 120
4.5.2 多重继承的同名 121
4.6 虚基类 125
4.7 恢复访问权限 128
4.8 本章小结 130
4.9 习题 130
第5章 多态性与虚函数 132
5.1 多态的概念 132
5.1.1 编译期多态与运行期多态 132
5.1.2 函数捆绑 133
5.2 函数重载 133
5.3 运算符重载 135
5.3.1 运算符重载的概念 135
5.3.2 用成员函数重载运算符 137
5.3.3 用友元函数重载运算符 138
5.3.4 运算符重载举例 140
5.4 虚函数 151
5.4.1 虚函数的概念 151
5.4.2 虚析构函数 155
5.4.3 重载、隐藏和覆盖的区别 157
5.5 纯虚函数与抽象类 158
5.5.1 纯虚函数 159
5.5.2 抽象类 160
5.6 本章小结 162
5.7 习题 162
第6章 模板 164
6.1 模板的概念 164
6.2 函数模板 166
6.2.1 函数模板的定义 166
6.2.2 函数模板的实例化 167
6.2.3 函数模板的重载 170
6.3 类模板 172
6.3.1 类模板的定义 172
6.3.2 类模板的实例化 174
6.3.3 类模板的静态成员 178
6.3.4 类模板的友元 179
6.4 模板与继承 183
6.5 本章小结 188
6.6 习题 188
第7章 输入/输出流 190
7.1 流的概念 190
7.2 输入/输出流类库 191
7.2.1 streambuf类 191
7.2.2 ios类 192
7.3 标准输入/输出流 193
7.3.1 预定义流对象 193
7.3.2 输出流类的成员函数 197
7.3.3 输入流类的成员函数 199
7.4 格式化输入/输出 205
7.4.1 使用流对象的成员函数进行格式化 205
7.4.2 使用控制符进行格式化 210
7.5 文件流 212
7.5.1 文件流类与文件流对象 212
7.5.2 文件的打开与关闭 213
7.5.3 文件的读写操作 216
7.5.4 随机文件的读写操作 221
7.6 字符串流 223
7.7 本章小结 225
7.8 习题 225
第8章 异常处理 226
8.1 异常的概念 226
8.2 异常处理方法 227
8.3 异常处理的实现 229
8.4 异常规范 235
8.5 异常与析构函数 236
8.6 异常类 238
8.6.1 异常类的基本用法 238
8.6.2 catch语句块中的参数 239
8.6.3 异常类的继承 244
8.7 重抛异常 246
8.8 标准异常类 249
8.9 本章小结 253
8.10 习题 253
第9章 STL简介 255
9.1 STL概述 255
9.2 常用的容器 258
9.2.1 vector容器 258
9.2.2 deque容器 265
9.2.3 list容器 269
9.2.4 set容器与multiset容器 272
9.2.5 map容器与multimap容器 276
9.2.6 stack容器 281
9.2.7 queue容器 282
9.3 迭代器 283
9.4 算法 285
9.4.1 函数对象 286
9.4.2 for_each算法 287
9.4.3 find算法 288
9.4.4 merge算法 289
9.4.5 sort算法 290
9.5 本章小结 292
9.6 习题 292
第10章 综合案例 293
10.1 需求分析 293
10.2 程序设计 294
10.3 代码实现 316
10.4 效果演示 316
10.5 本章小结 323
10.6 习题 324