1.1 C++语言的发展 1
第1章 C++语言概述 1
1.2 C++的特点 2
1.3 简单的C++程序 2
1.4 C++程序的开发步骤和上机调试流程 6
1.5 VC++6.0调试C++程序的操作过程 7
习题 9
第2章 算法简介 10
2.1 算法的概念 10
2.2 算法举例 10
2.3 算法的特性 11
2.4 算法的表达 11
2.5 三种基本算法结构 12
2.6 习题 13
3.1.1 C++的字符集 14
3.1.2 标识符和关键字 14
3.1 C++的字符集、关键字和标识符 14
第3章 数据类型和表达式 14
3.2 C++的基本数据类型 15
3.2.1 基本数据类型 15
3.2.2 常量 17
3.2.3 变量 20
3.3 运算符与表达式 22
3.3.1 算术运算符与算术表达式 23
3.3.2 ++(增1)和--(减1)运算符 25
3.3.3 赋值运算符与赋值表达式 26
3.3.4 数据类型转换 27
3.3.5 关系运算符与关系表达式 29
3.3.6 逻辑运算符与逻辑表达式 29
3.3.7 逗号运算符 30
3.3.8 条件运算符“?:” 30
3.3.10 位运算符 31
3.3.9 sizeof运算符 31
3.4 常用库函数 32
3.4.1 数学库函数 33
3.4.2 伪随机函数 34
习题 34
第4章 简单程序设计 36
4.1 表达式语句和空语句 36
4.2 复合语句 36
4.3 数据的输入输出 37
4.3.1 预定义输入流对象cin 37
4.3.2 预定义输出流对象cout 39
4.4 顺序结构程序举例 41
习题 42
5.1.1 C++语句的分类 44
5.2.1 条件语句 44
5.2 选择结构语句 44
5.1 C++语言的语句和程序结构 44
第5章 C++的流程控制语句 44
5.2.2 开关语句 47
5.3 循环结构语句 49
5.3.1 while()语句 49
5.3.2 do...while语句 50
5.3.3 for语句 51
5.3.4 循环语句小结 53
5.4 转向语句 54
5.4.1 break语句 55
5.4.2 continue语句 56
5.4.3 goto语句简介 57
5.4.4 exit()函数 57
5.5 程序举例 58
5.6 程序调试方法简介 62
习题 63
6.1 函数的定义 66
第6章 函数 66
6.2 函数的参数 68
6.2.1 函数的形式参数 68
6.2.2 函数的实际参数 68
6.3 函数的返回值 68
6.4 函数的原型说明 69
6.5 函数的调用 70
6.5.1 函数的传值调用 71
6.5.2 函数的引用调用 73
6.5.3 函数调用过程分析 74
6.5.4 函数的嵌套调用 74
6.5.5 函数的递归调用 75
6.6 作用域和存储类型 80
6.6.1 作用域 80
6.6.2 存储类型 83
6.7.1 内联函数 87
6.7 C++增加的函数特性 87
6.7.2 默认参数值的函数 88
6.7.3 函数的重载 89
习题 91
第7章 编译预处理和程序的多文件组织 93
7.1 宏定义 93
7.1.1 不带参数的宏定义 93
7.1.2 带参数的宏定义 95
7.2 “包含文件”处理 97
7.3 条件编译 98
7.4 程序的多文件组织 100
7.4.1 内部函数和外部函数 101
7.4.2 多文件组织的编译和链接 102
习题 103
第8章 数组 105
8.1 一维数组的定义、初始化和使用 105
8.2 多维数组的定义、初始化和使用 108
8.3 数组作为函数的参数 111
8.4 字符数组 114
8.5 字符串处理函数 115
8.6 数组应用举例 117
8.6.1 排序 117
8.6.2 查找 119
8.6.3 统计 121
8.6.4 字符处理 121
习题 122
第9章 结构体、共用体和枚举类型 124
9.1 结构体的定义及应用 124
9.1.1 结构体类型的定义 124
9.1.2 结构体类型变量的定义 125
9.1.3 结构体类型变量的使用 125
9.2 位域 128
9.3 共用体的定义及应用 130
9.4 枚举类型 131
习题 133
第10章 指针和引用 134
10.1 指针和指针变量 134
10.1.1 地址的概念 134
10.1.2 指针的概念 135
10.1.3 指针变量 135
10.1.4 指针的运算 135
10.2 指针与数组 140
10.2.1 指针与一维数组 140
10.2.2 指针与多维数组 141
10.2.3 指针和字符串 145
10.3 指针数组和指向指针的指针变量 146
10.3.1 指针数组 146
10.3.2 指向一维数组的指针变量 148
10.3.3 指向指针的指针变量 150
10.4.1 指针做函数的参数 151
10.4 指针与函数 151
10.4.2 带参数的main()函数 155
10.4.3 返回值为指针的函数 157
10.4.4 指向函数的指针 159
10.5 new和delete运算符 162
10.5.1 new运算符 162
10.5.2 delete运算符 164
10.5.3 应用举例 165
10.6 引用 169
10.6.1 引用型变量的说明及使用 169
10.6.2 引用和函数 170
10.7 单向链表及其应用 172
10.7.1 概述 172
10.7.2 单向链表的建立和基本操作 173
10.8.1 常值变量 177
10.8 其他 177
10.8.2 类型名重定义语句(typedef) 179
10.8.3 void型指针 181
10.8.4 参数个数可变的函数 183
习题 187
第11章 类和对象 190
11.1 面向对象的思想 190
11.2 面向对象程序设计的基本特点 191
11.3 面向对象软件开发的基本过程 192
11.4 类和对象 193
11.4.1 类的定义 194
11.4.2 类成员的访问控制 195
11.4.3 类的成员函数及重载 196
11.4.4 对象 197
11.4.5 对象数组 199
11.4.6 this指针 200
11.5.1 构造函数 201
11.5 构造函数和析构函数 201
11.5.2 析构函数 204
11.5.3 构造函数的类型转换功能 207
11.5.4 拷贝构造函数 208
11.5.5 对象成员与构造函数 210
11.6 友元 212
11.6.1 友元函数 213
11.6.2 友元类 214
11.7 类的静态成员 215
11.7.1 静态数据成员 215
11.7.2 静态成员函数 217
11.8 const对象和成员函数 219
11.9 应用实例 221
习题 223
12.1.1 重载运算符的目的 226
第12章 运算符重载 226
12.1 运算符重载的基本方法 226
12.1.2 如何重载运算符 227
12.2 运算符重载为成员函数 228
12.3 运算符重载为友元函数 230
12.4 几个特殊运算符的重载 233
12.4.1 赋值运算符的重载 233
12.4.2 ++和--运算符的重载 234
12.4.3 下标运算符的重载 236
12.4.4 函数调用运算符的重载 237
12.4.5 转换函数 238
12.5 运算符重载的规则 239
12.6 字符串类 240
习题 243
13.1.2 单一继承 244
13.1.1 基本概念 244
13.1 继承 244
第13章 继承和派生 244
13.1.3 多重继承 248
13.2 初始化基类成员 249
13.3 冲突、支配规则和赋值兼容性 254
13.3.1 冲突 254
13.3.2 支配规则 257
13.3.3 基类和对象成员 257
13.3.4 赋值兼容规则 258
13.4 虚基类 259
13.5 虚函数 263
13.5.1 虚函数的定义 263
13.5.2 虚函数与多态性 264
13.5.3 虚函数的特殊性 265
13.5.4 虚析构函数的重要性 266
13.5.5 纯虚函数 268
13.5.6 综合应用举例 269
习题 274
第14章 输入输出流类库 276
14.1 概述 276
14.1.1 字节流 276
14.1.2 文件 276
14.1.3 缓冲 276
14.2 基本I/O流类体系 277
14.2.1 概述 277
14.2.2 预定义的标准流与提取和插入运算符 277
14.2.3 流的格式控制 278
14.2.4 流的错误处理 279
14.3 标准设备的输入输出 280
14.3.1 基本类型数据的输入 280
14.3.2 字符和字符串的输入 280
14.3.4 字符的输出 281
14.3.3 基本类型数据的输出 281
14.4 重载提取和插入运算符 282
14.5 文件 283
14.5.1 概述 283
14.5.2 文件的打开 284
14.5.3 文件的关闭 286
14.5.4 文本文件的使用 286
14.5.5 二进制文件的使用 288
14.6 综合应用举例 291
习题 292
第15章 命名空间、模板和异常处理 293
15.1 命名空间 293
15.1.1 命名空间的定义与使用 293
15.1.2 标准命名空间std 296
15.1.3 用using引用命名空间 297
15.2.1 函数模板的概念 299
15.2 函数模板 299
15.2.2 函数模板的使用 300
15.2.3 函数模板的重载与特例 303
15.3 类模板 304
15.3.1 类模板的定义 304
15.3.2 类模板的使用 305
15.3.3 类模板的特例 307
15.4.1 异常处理的基本思想 308
15.4 异常处理 308
15.4.2 异常的抛掷、检测与捕获处理 309
15.4.3 指定函数抛掷的异常类型 314
15.4.4 异常处理的嵌套 314
15.4.5 抛掷异常时撤销对象 315
习题 316
附录A ASCII码表 318
附录B 常用的库函数 319
参考文献 322