第1章 程序设计与C++语言入门 1
1.1程序及相关概念 1
1.1.1计算机与用户(人) 1
1.1.2算法 2
1.1.3程序 2
1.2程序设计 3
1.2.1程序设计的基本概念 3
1.2.2程序设计过程 3
1.2.3程序设计方法 4
1.3程序设计语言 7
1.3.1机器语言 7
1.3.2汇编语言 7
1.3.3高级语言 7
1.3.4编译型语言与解释型语言 8
1.3.5C++语言 8
1.4C++程序的结构 8
1.4.1C++程序的基本成分 8
1.4.2以函数为单位的程序结构 9
1.4.3以类为单位的程序结构 10
1.5C++程序的实现过程 13
小结 14
习题 14
第2章 内置数据类型与基本输入输出 15
2.1数据类型概述 15
2.1.1数据类型的基本概念 15
2.1.2C++语言类型系统的基本特点 15
2.2标识符 15
2.2.1C++语言中的基本记号 16
2.2.2标识符 17
2.3常量和变量 17
2.3.1变量和变量的声明 18
2.3.2常量和常量的声明 19
2.4内置数据类型 20
2.4.1内置数据类型概述 20
2.4.2字符类型常量和变量 21
2.4.3整数类型常量和变量 22
2.4.4浮点类型常量和变量 23
2.4.5布尔类型常量和变量 23
2.4.6字符串类型常量和变量 24
2.5操作符和表达式 24
2.5.1操作符与表达式的基本概念 24
2.5.2各种操作符和表达式详解 26
2.6类型之间的关系 30
2.6.1隐式类型转换 30
2.6.2显式(强制)类型转换 31
2.7标准库的使用和简单的输入输出 31
2.7.1输出 31
2.7.2输入 32
2.8应用举例 32
小结 33
习题 33
第3章 语句与基本控制结构 35
3.1C++语句概述 35
3.1.1带标号语句 35
3.1.2表达式语句 36
3.1.3复合语句 36
3.1.4声明语句 37
3.1.5try块 38
3.1.6转移语句 38
3.2程序的基本控制结构 39
3.3选择语句 40
3.3.1if语句 40
3.3.2switch语句 43
3.4循环语句 44
3.4.1while语句 45
3.4.2do-while语句 46
3.4.3for语句 46
3.4.4break语句及其在循环语句中的使用 48
3.4.5continue语句及其在循环语句中的使用 49
3.5应用举例 50
小结 53
习题 54
第4章 函数 57
4.1概述 57
4.2函数定义与函数原型 59
4.2.1函数定义 59
4.2.2函数原型 60
4.3函数调用与参数传递 61
4.3.1函数调用 61
4.3.2参数传递 63
4.4标识符的作用域 68
4.4.1作用域的基本概念 68
4.4.2作用域的具体规则 69
4.4.3变量的声明与定义 70
4.4.4名字空间 72
4.5变量的生命期 73
4.6预处理指令 76
4.6.1文件包含 76
4.6.2宏定义 76
4.6.3条件编译 76
4.7标准库函数 77
4.8函数的接口设计和注释 77
4.8.1前置条件和后置条件 77
4.8.2函数的注释 78
4.8.3函数的接口与实现 78
4.8.4函数接口的设计 79
4.9递归 80
4.9.1什么是递归 80
4.9.2递归的实现 81
4.9.3汉诺塔问题 82
4.10应用举例 83
小结 85
习题 85
第5章 枚举、结构与类 87
5.1简单数据类型与构造式数据类型 87
5.2枚举类型 87
5.3结构类型 89
5.3.1结构类型的定义和结构类型变量的声明和使用 89
5.3.2结构变量的整体操作 91
5.3.3层次结构 93
5.3.4匿名结构类型 94
5.4抽象、封装与信息隐藏 94
5.4.1抽象 94
5.4.2数据封装与隐藏 95
5.5类与对象 98
5.5.1类 98
5.5.2对象的创建 103
5.5.3对象的初始化 104
5.6关于面向对象程序设计的若干基本问题 108
5.6.1面向过程与面向对象 108
5.6.2术语 112
5.7应用举例 112
小结 115
习题 115
第6章 数组与指针 117
6.1数组类型 117
6.1.1一维数组 117
6.1.2二维数组 124
6.2指针类型 132
6.2.1基本概念 132
6.2.2指针常量与指针变量 133
6.2.3指针的运用 136
6.3指针类型与数组 141
6.3.1通过指针引用数组元素 141
6.3.2数组作函数参数的进一步讨论 145
6.3.3动态分配内存 147
6.3.4二维数组与指针 151
6.4main函数的形参 153
6.5指向结构变量的指针 155
6.6对象指针 156
6.6.1基本概念 156
6.6.2对象的动态创建和撤销 157
6.6.3对象的复制 158
6.7函数指针 159
6.8应用举例 160
小结 166
习题 166
第7章 字符串 169
7.1C风格字符串 169
7.1.1字符串字面值 169
7.1.2字符数组 169
7.2标准库字符串操作函数 171
7.2.1C风格字符串的连接操作 171
7.2.2C风格字符串的比较 172
7.2.3C风格字符串的复制 173
7.2.4求C风格字符串的长度 173
7.2.5C风格字符串转换成其他类型的数据 174
7.2.6cctype库中处理字符的函数 174
7.3标准库类string 175
7.3.1string对象的声明、初始化与赋值 176
7.3.2string对象的长度 176
7.3.3string对象的连接操作 176
7.3.4string对象的比较 177
7.3.5string对象的子串 177
7.3.6string对象转换成C风格字符串 178
7.3.7string对象的输入和输出 178
7.4应用举例 178
小结 182
习题 183
第8章 继承与组合 186
8.1继承的概念 186
8.2C++中的继承 187
8.2.1基本概念 187
8.2.2继承实例 190
8.2.3派生类中继承成员函数的重定义 195
8.2.4继承层次中的构造函数和析构函数 195
8.3组合 199
8.3.1组合的语法和图形表示 199
8.3.2组合与构造函数和析构函数 200
8.3.3组合的实例 202
8.4继承与组合的比较 206
8.5多重继承与重复继承 206
8.5.1多重继承 206
8.5.2多重继承的构造函数 209
8.5.3多重继承中存在的问题:名字冲突 210
8.5.4重复继承 211
8.6应用举例 214
小结 227
习题 228
第9章 重载 232
9.1函数重载 232
9.1.1什么是函数重载 232
9.1.2为什么要使用函数重载 237
9.1.3使用函数重载时需要注意的问题 237
9.2复制构造函数 241
9.2.1复制构造函数的语法形式 241
9.2.2复制构造函数的使用场合 242
9.3操作符重载 254
9.3.1C++操作符的函数特性 254
9.3.2操作符重载的规则 254
9.3.3类成员操作符重载 254
9.3.4友元操作符重载 260
9.4应用举例 263
小结 270
习题 270
第10章 I/O流与文件 273
10.1概述 273
10.1.1何为I/O 273
10.1.2应用程序、操作系统与I/O 273
10.1.3标准I/O流cin和cout 274
10.1.4文件I/O流 275
10.2二进制文件I/O 278
10.2.1文本文件I/O与二进制文件I/O 278
10.2.1二进制文件I/O 279
10.3应用举例 282
小结 285
习题 285
第11章 多态性与虚函数 286
11.1绑定方式与多态性 286
11.1.1基本概念 286
11.1.2多态性的作用 286
11.2虚函数 287
11.2.1虚函数举例 288
11.2.2使用虚函数的特定版本 290
11.2.3虚析构函数 291
11.3纯虚函数和抽象类 292
11.3.1纯虚函数 292
11.3.2抽象类 293
11.4应用举例 294
小结 304
习题 305
第12章 异常处理 306
12.1异常处理概述 306
12.2C++语言中的异常处理 306
12.2.1throw语句 307
12.2.2try块与异常的捕获及处理 308
12.2.3标准库异常类 321
12.2.4异常说明 322
12.3应用举例 323
小结 336
习题 336
第13章 模板 338
13.1泛型编程概述 338
13.2函数模板 338
13.2.1函数模板的定义 339
13.2.2函数模板的实例化 339
13.2.3函数模板与重载 341
13.3类模板 344
13.3.1类模板的定义 344
13.3.2类模板的实例化 348
13.3.3模板编译与类模板的实现 349
13.4非类型模板形参 352
13.4.1函数模板的非类型形参 352
13.4.2类模板的非类型形参 352
13.5应用举例 353
小结 367
习题 367
第14章 标准模板库 370
14.1概述 370
14.2迭代器 370
14.3容器 372
14.3.1顺序容器 372
14.3.2关联容器 383
14.3.3容器适配器 390
14.4泛型算法 393
14.4.1算法简介 393
14.4.2算法举例 396
14.5应用举例 397
小结 407
习题 408
附录AC++保留字表 409
附录B标准ASCII代码表 410
附录C常用数学函数 411
附录DC++标准库头文件 412
附录E标准库泛型算法简介 413
附录F主要术语英汉对照表 420
参考文献 424