第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引用及其应用 22
1.2.4综合应用举例 28
1.3数组、指针与字符串 30
1.3.1数组及其应用 30
1.3.2指针及其应用 41
1.3.3字符串及其应用 45
1.3.4综合应用举例 50
1.4结构类型 52
1.4.1结构定义与应用 52
1.4.2链表与list 56
1.4.3综合应用举例 58
小结 60
习题 61
第2章 类与对象的定义 63
2.1面向对象的基本概念 63
2.1.1面向对象方法 63
2.1.2三大特征 66
2.1.3基本概念 67
2.1.4建立对象模型 70
2.2类的定义 71
2.2.1类定义的语法 71
2.2.2由类定义对象 79
2.2.3访问函数与工具函数 81
2.2.4应用举例 83
2.3对象的定义 86
2.3.1构造函数 86
2.3.2析构函数 89
2.3.3默认构造函数 92
2.3.4转换构造函数 95
2.3.5复制构造函数 98
2.3.6对象的赋值 103
2.3.7应用举例 106
2.4类的复合 112
2.4.1类之间的复合关系 112
2.4.2对象成员的构造与析构 113
2.4.3应用举例 116
2.5类成员指针 117
2.5.1指向成员的指针的定义和使用 117
2.5.2应用举例 119
2.6综合应用举例 120
小结 122
习题 123
第3章类的几个主题 124
3.1 this指针 124
3.1.1 this指针概述 124
3.1.2 this指针的用法 125
3.2 const关键字 129
3.3 new/delete运算符 137
3.3.1 new/delete概述 137
3.3.2基本用法 137
3.3.3复杂用法 141
3.3.4应用举例 146
3.4 friend关键字 148
3.4.1友元关系及其声明 148
3.4.2友元函数 149
3.4.3友元类 150
3.4.4应用举例 151
3.5 static关键字 152
3.5.1在对象之间共享数据 152
3.5.2 static数据成员 152
3.5.3 static成员函数 154
3.5.4 static成员常见应用 156
小结 159
习题 160
第4章 运算符重载 161
4.1概述 161
4.1.1基本概念 161
4.1.2运算符重载的语法规则 163
4.1.3运算符重载实现的形式 164
4.2成员函数形式的运算符重载 165
4.2.1算术运算类及相关运算符的重载 165
4.2.2关系运算类及逻辑运算类运算符的重载 170
4.3友元函数形式的运算符重载 173
4.3.1友元函数形式 173
4.3.2重载流插入符和流提取符 176
4.4几种常用运算符的重载 178
4.4.1增量/减量运算符的重载 178
4.4.2下标运算符的重载 181
4.4.3函数调用运算符的重载 182
4.4.4转换运算符的重载 187
4.5综合应用举例 190
小结 194
习题 197
第5章 模板 198
5.1模板概述 198
5.1.1数据类型的参数化 198
5.1.2模板的初印象 200
5.2函数模板 201
5.2.1函数模板的定义 201
5.2.2函数模板的实例化 204
5.2.3函数模板的重载 206
5.2.4函数模板对数据类型的需求 207
5.2.5应用举例 210
5.3类模板 213
5.3.1类模板的定义 213
5.3.2类模板的实例化 217
5.3.3类模板的文件结构 219
5.3.4类模板的友元函数 220
5.4链表与类模板 223
5.4.1链表的概念 223
5.4.2链表的实现 224
小结 231
习题 232
第6章 标准模板库(STL) 233
6.1概述 233
6.1.1泛型编程 233
6.1.2 STL组件与标准头文件 235
6.1.3区间 236
6.2函数对象与算法 237
6.2.1算法概述 237
6.2.2函数对象与函数配接器 242
6.2.3算法应用 245
6.3容器 252
6.3.1容器分类 252
6.3.2容器共有操作 253
6.3.3序列式容器之deque 257
6.3.4关联式容器之set/multiset 259
6.3.5关联式容器之map/multimap 262
6.4迭代器 266
6.4.1基本概念 266
6.4.2迭代器操作 267
6.4.3迭代器分类 268
6.4.4迭代器特性与类型 270
6.4.5迭代器相关的函数 271
6.4.6 Insert迭代器 272
6.4.7 Stream迭代器 274
小结 275
习题 276
第7章 继承与派生 277
7.1基本概念 277
7.1.1继承的概念 277
7.1.2继承的机制 281
7.1.3继承的语法 282
7.1.4几个概念 283
7.1.5继承与复合 284
7.2继承方式与访问控制 287
7.2.1继承方式 287
7.2.2 public继承 289
7.2.3类的protected成员 290
7.3派生类对象的构造和析构 291
7.3.1派生类的构造函数 291
7.3.2成员初始化列表 292
7.3.3对象成员的初始化 294
7.3.4初始化直接基类 295
7.4单一继承的典型应用 296
7.4.1基类描述共性 296
7.4.2扩展基类功能 298
7.4.3成员名限定法 300
7.4.4隐藏基类成员 301
7.4.5禁止复制和赋值 301
7.5赋值兼容规则 302
7.5.1派生类对象是基类对象 302
7.5.2赋值兼容规则 304
7.6多重继承 306
7.6.1定义与语法 306
7.6.2虚基类 308
7.6.3应用举例 312
小结 316
习题 317
第8章 虚函数与多态性 318
8.1概述 318
8.1.1问题的引出 318
8.1.2静态绑定 320
8.1.3动态绑定 320
8.2虚函数 321
8.2.1定义语法 321
8.2.2应用举例 323
8.2.3虚函数表 328
8.2.4虚析构函数 330
8.3多态性 331
8.3.1多态性的概念 331
8.3.2 C+++的多态性 332
8.4抽象类 333
8.4.1纯虚函数 333
8.4.2抽象基类 334
8.4.3应用举例 334
小结 336
习题 337
第9章C+的I/O流 338
9.1 I/O流库 338
9.1.1流与I/O流库 338
9.1.2 I/O流对象 340
9.2标准I/O流 341
9.2.1标准输出流 341
9.2.2标准输入流 346
9.2.3应用举例 354
9.3格式化I/O 356
9.3.1格式控制 356
9.3.2格式标志位 356
9.3.3成员函数 359
9.3.4流操纵算子 361
9.3.5自定义流操纵算子 363
9.4文件I/O流 365
9.4.1基本概念 365
9.4.2文件操作 366
9.4.3应用举例 371
9.5字符串I/O流 375
9.5.1字符串I/O流 375
9.5.2应用举例 376
9.6流错误状态及错误处理 377
9.6.1流的错误状态位及状态函数 377
9.6.2流错误处理 378
小结 380
习题 381
第10章 异常处理 382
10.1概述 382
10.1.1程序错误和异常 382
10.1.2异常处理的运行模型 383
10.2 C++的异常处理 383
10.2.1 C+++的异常机制 383
10.2.2异常捕获与处理的常见规则 388
小结 395
习题 395
参考文献 396