第1章 C++的发展与特点概述 1
1.1 C++与C语言 1
1.1.1 C++的产生 1
1.1.2 C++与C语言的关系 1
1.2 C++的新特性 2
1.2.1 面向对象的概念 2
1.2.2 面向对象的特点 3
1.2.3 C++程序的组成 3
1.3 Visual C++6.0开发环境 4
1.3.1 Visual C++6.0开发环境的启动 4
1.3.2 一个简单的C++程序 6
本章小结 7
习题一 8
第2章 数据类型与表达式 9
2.1 基本数据类型 9
2.1.1 整数类型 9
2.1.2 浮点类型 10
2.1.3 字符类型 10
2.1.4 逻辑类型 10
2.1.5 空值类型 10
2.2 常量 11
2.2.1 整型常量 11
2.2.2 浮点型常量 11
2.2.3 字符型常量 12
2.2.4 字符串常量 12
2.3 变量 13
2.3.1 变量的定义 13
2.2.5 逻辑常量 13
2.2.6 地址常量 13
2.3.2 变量赋初值 15
2.4 运算符与表达式 15
2.4.1 算术运算符 15
2.4.2 关系运算符 16
2.4.3 逻辑运算符 17
2.4.4 位运算符 18
2.4.5 特殊运算符 19
2.4.6 运算符小结 20
2.4.7 类型转换 21
2.5 自定义数据类型 22
本章小结 22
习题二 23
3.1.1 表达式语句 25
3.1.2 输入输出语句 25
第3章 程序流程控制语句 25
3.1 顺序结构语句 25
3.1.3 预处理命令语句 27
3.2 选择结构语句 28
3.2.1 if语句 28
3.2.2 switch语句 31
3.3 循环结构语句 33
3.3.1 while语句 33
3.3.2 do…while语句 35
3.3.3 for语句 36
3.4 跳转语句 39
3.4.1 continue语句 39
3.4.2 goto语句 40
本章小结 40
习题三 41
第4章 数组、指针与引用 43
4.1 数组 43
4.1.1 一维数组的定义与用法 43
4.1.2 二维数组的定义与用法 47
4.2 指针 51
4.2.1 指针的概念 51
4.2.2 一级指针的定义与用法 51
4.2.3 二级指针的定义与用法 53
4.3 指针与数组 54
4.3.1 指针与一维数组 54
4.3.2 指针与二维数组 55
4.4 引用 56
4.4.2 引用的用法 57
4.4.1 引用的概念 57
本章小结 58
习题四 58
第5章 函数 62
5.1 函数的定义 62
5.1.1 声明函数 62
5.1.2 定义函数 62
5.2 函数的调用 63
5.2.1 函数的值传递 64
5.2.2 函数的地址传递 65
5.2.3 函数在排序算法中的应用 65
5.3 函数的重载 69
5.3.1 参数类型不同的重载函数 69
5.3.2 参数个数不同的重载函数 70
5.4.1 函数的嵌套调用 71
5.4 函数的嵌套调用与递归调用 71
5.4.2 函数的递归调用 72
5.5 内联函数 74
5.6 数据存储类型 76
5.6.1 自动存储类型 76
5.6.2 静态存储类型 77
5.6.3 外部存储类型 78
5.6.4 寄存器存储类型 79
5.7 字符串处理函数 80
5.7.1 strlen函数 80
5.7.2 strcat函数 80
5.7.3 strcmp函数 81
5.7.4 strcpy函数 81
本章小结 82
5.7.5 strstr函数 82
习题五 83
第6章 结构体与共用体 88
6.1 结构体的定义 88
6.2 结构体的用法 89
6.2.1 结构体成员的引用 89
6.2.2 结构体数组 89
6.2.3 结构体与指针 91
6.3 共用体 92
本章小结 92
习题六 92
第7章 类与对象 94
7.1 类 94
7.1.1 类的概念 94
7.1.2 类的定义 95
7.2.1 对象的定义 98
7.2 对象 98
7.2.2 对象的操作 99
7.2.3 this指针 101
7.2.4 对象数组 102
7.3 构造函数 103
7.3.1 构造函数的定义 103
7.3.2 构造函数的重载 105
7.3.3 拷贝构造函数 106
7.4 析构函数 108
7.5 静态成员 109
7.5.1 静态数据成员 109
7.5.2 静态成员函数 110
7.6 友元 112
7.6.1 友元函数 112
7.6.2 友元类 113
本章小结 114
习题七 115
第8章 继承与派生 118
8.1 基类与派生类 118
8.2 继承的方式 118
8.2.1 公有继承(public) 119
8.2.2 私有继承(private) 120
8.2.3 保护继承(protected) 122
8.3 单继承 123
8.3.1 成员访问权限的控制 123
8.3.2 派生类与构造函数和析构函数 126
8.4 多继承 132
8.4.1 多继承的概念 132
8.4.2 多继承的应用 134
8.5 赋值兼容原则 137
本章小结 138
习题八 138
第9章 模板 141
9.1 模板的概念 141
9.2 函数模板 142
9.2.1 函数模板的定义 142
9.2.2 函数模板的用法 143
9.2.3 模板函数的重载 144
9.3 类模板 145
9.3.1 类模板的定义 145
9.3.2 类模板的用法 147
习题九 150
本章小结 150
第10章 多态性与虚函数 153
10.1 多态性 153
10.1.1 多态性概述 153
10.1.2 多态的分类 153
10.2 虚函数 155
10.2.1 一般虚函数 156
10.2.2 虚函数的继承性 159
10.2.3 虚函数与重载函数 160
10.2.4 虚析构函数 162
10.2.5 构造函数调用虚函数 163
10.3 纯虚函数与抽象类 165
10.4 虚基类 169
10.4.1 虚基类的引入 170
10.4.2 虚基类的构造函数 172
习题十 174
本章小结 174
第11章 运算符重载 176
11.1 运算符重载的概念 176
11.2 运算符重载的用法 177
11.2.1 实现运算符重载的非成员函数形式 177
11.2.2 实现运算符重载的成员函数形式 179
11.3 特殊运算符的重载 181
11.3.1 自增运算符的重载 181
11.3.2 强制类型转换运算符的重载 187
11.3.3 赋值运算符的重载 188
本章小结 191
习题十一 191
12.1 流的概念 194
第12章 C++的I/O流 194
12.2 格式化输入输出 195
12.2.1 输出宽度设置函数 195
12.2.2 补位填充函数 195
12.2.3 输出精度设置函数 196
12.2.4 输出数据状态设置函数 197
12.2.5 数制设置函数 198
12.3 文件流 199
12.3.1 文件的概念 199
12.3.2 文件流对象 199
12.3.3 文件流状态的判断 201
12.3.4 文本文件的访问 201
12.3.5 二进制文件的访问 208
12.4 字符串流 214
习题十二 215
本章小结 215
第13章 异常的处理 219
13.1 异常处理的概念 219
13.2 如何实现异常处理 219
13.3 关于异常处理的若干规定 221
13.4 异常处理的综合应用 223
本章小结 228
习题十三 228
第14章 综合实例 231
实例1 同学录管理系统 231
实例2 学生成绩管理系统 252
本章小结 284
实训 285
实训1 数据类型与表达式 285
实训2 顺序结构语句 286
实训3 选择结构语句 287
实训4 循环结构语句 288
实训5 数组 289
实训6 函数 291
实训7 类与对象 292
实训8 继承与派生 294
实训9 多继承 296
实训10 模板 298
实训11 多态性与虚函数 299
实训12 运算符重载 301
实训13 文件流 303
附录 306
附录Ⅰ C++语言常用语法概要 306
附录Ⅱ 常用字符与ASCII码对照表 312
附录Ⅲ 运算符和结合性 313