第1章 C++语言概述 1
1.1计算机语言发展概述 1
1.1.1程序和程序设计语言 1
1.1.2结构化程序设计 2
1.1.3面向对象程序设计 2
1.2C++语言的特点及其程序的开发过程 3
1.2.1C++语言的特点 3
1.2.2C++程序的开发过程 4
1.3C++程序的结构 4
1.3.1简单的C++程序 4
1.3.2C++程序的基本结构 5
1.3.3C++程序的书写格式和注释 6
1.4Visual C++ 6.0开发环境 7
1.4.1Visual C++6.0集成开发环境简介 7
1.4.2Visual C++ 6.0程序的开发流程 8
习题1 11
第2章 数据类型、运算符及表达式 13
2.1C++语言的基本词法 13
2.1.1C++的字符集 13
2.1.2C++的标识符 13
2.1.3C++的保留字 14
2.2基本数据类型 14
2.2.1C++的基本数据类型 14
2.2.2常量 15
2.2.3变量 17
2.3运算符与表达式 19
2.3.1运算符与表达式概述 19
2.3.2赋值运算符及表达式 20
2.3.3算术运算符及表达式 20
2.3.4关系运算符及表达式 22
2.3.5逻辑运算符及表达式 23
2.3.6位运算符及表达式 25
2.3.7移位运算符及表达式 26
2.3.8增1、减1运算符及表达式 28
2.3.9其他运算符及表达式 30
2.4C++运算符的优先级和结合性 32
2.5数据类型的转换 32
2.5.1数据类型的自动转换 32
2.5.2数据类型的强制转换 33
习题2 33
第3章 控制语句 36
3.1程序设计概述 36
3.1.1程序设计的基本概念 36
3.1.2N-S图简介 37
3.1.3C++语句的分类 38
3.2数据的输出、输入及顺序结构程序设计 39
3.2.1数据的输出 39
3.2.2数据的输入 39
3.2.3简单的I/O格式控制 40
3.2.4顺序结构程序设计 41
3.3选择控制语句 42
3.3.1条件表达式 42
3.3.2if~else语句 44
3.3.3switch语句 48
3.3.4选择结构程序设计举例 50
3.4循环控制语句 52
3.4.1while循环语句 52
3.4.2do~while循环语句 54
3.4.3for循环语句 55
3.4.4循环的嵌套 56
3.4.5几种循环的比较 58
3.4.6循环结构程序设计举例 59
3.5其他控制语句 61
3.5.1break语句 61
3.5.2continue语句 62
3.5.3goto语句 63
习题3 65
第4章 数组 69
4.1一维数组 69
4.1.1一维数组的定义 69
4.1.2一维数组元素的引用 70
4.1.3一维数组的初始化 71
4.1.4一维数组程序举例 72
4.2字符数组 73
4.2.1字符数组的定义 73
4.2.2字符数组元素的引用 74
4.2.3字符数组的初始化 75
4.2.4字符数组程序举例 76
4.3多维数组 77
4.3.1多维数组的定义 77
4.3.2多维数组元素的引用 78
4.3.3多维数组的初始化 78
4.3.4多维数组应用举例 79
习题4 81
第5章 函数 84
5.1函数的定义、说明和调用 84
5.1.1return语句 84
5.1.2函数的定义 84
5.1.3函数说明 86
5.1.4函数调用 86
5.2函数间的数据传递 87
5.2.1函数间的数值传递 87
5.2.2函数间的地址传递 88
5.2.3函数间的引用传递 89
5.2.4全局变量传递函数处理结果 90
5.2.5利用指针、引用返回函数处理的结果 91
5.3函数的嵌套调用与递归调用 95
5.3.1函数的嵌套调用 95
5.3.2函数的递归调用 96
5.4内联函数 99
5.4.1内联函数的格式及应用 99
5.4.2内联函数要注意的问题 100
5.5带默认参数的函数 100
5.5.1带默认参数的函数应用 100
5.5.2调用默认参数函数应注意的问题 101
5.6变量的生存期、作用域和命名空间 101
5.6.1变量的生存期 102
5.6.2变量的作用域 103
5.6.3命名空间 104
习题5 107
第6章 指针 110
6.1指针变量的定义和初始化 110
6.1.1指针与指针的目标变量 110
6.1.2指针变量的定义与初始化 112
6.1.3近程和远程指针 113
6.2指针运算 115
6.2.1指针的一般运算 115
6.2.2指针的算术运算 115
6.2.3指针的关系运算 117
6.3指针与数组、指针数组 118
6.3.1指针与数组 119
6.3.2指针数组 122
6.4指向数组的指针与多级指针 125
6.4.1指向数组的指针 125
6.4.2多级指针 127
6.5指针与函数 129
6.5.1作为函数参数的指针 129
6.5.2指针型函数 130
6.5.3指向函数的指针 133
6.6引用与命令行参数 136
6.6.1引用的定义 137
6.6.2引用与函数 137
6.6.3命令行参数 139
习题6 140
第7章 复杂数据类型 143
7.1结构体 143
7.1.1结构体类型说明和结构体变量定义 143
7.1.2结构体变量的初始化和成员的引用 145
7.1.3结构体数组和指向结构体的指针 146
7.1.4结构体和函数 148
7.1.5结构体型函数和结构体指针型函数 149
7.1.6结构体嵌套和位域结构体 152
7.2联合体 155
7.2.1联合体类型的说明与联合体变量的定义 155
7.2.2联合体变量与结构体变量的比较 156
7.2.3结构体中嵌套联合体 157
7.2.4联合体中嵌套位域结构体 159
7.3枚举 160
7.3.1枚举类型的说明与变量的定义 160
7.3.2枚举的应用 162
7.4用typedef定义数据类型 164
习题7 164
第8章 类与对象 168
8.1面向对象程序设计 168
8.1.1面向对象方法是一种认知方法 168
8.1.2面向对象程序设计的特点 169
8.2类和对象 172
8.2.1类的说明 172
8.2.2类的数据成员和成员函数 172
8.2.3类成员的访问控制 173
8.2.4对象定义及成员的表示方法 174
8.3构造函数和析构函数 175
8.3.1构造函数 175
8.3.2拷贝构造函数 176
8.3.3析构函数 179
8.4类的静态成员 180
8.4.1静态数据成员 180
8.4.2静态成员函数 181
8.5友元 182
8.5.1友元函数 183
8.5.2友元类 184
8.6常类型 185
8.6.1常引用 185
8.6.2常对象 185
8.6.3常数据成员 186
8.6.4常成员函数 187
8.7指向对象的指针、this指针和指向类成员指针 188
8.7.1指向对象的指针 188
8.7.2this指针 189
8.7.3指向数据成员的指针 190
8.7.4指向成员函数的指针 191
习题8 192
第9章 继承性和派生类 194
9.1派生类 194
9.1.1继承性的概念 194
9.1.2类的层次结构 194
9.1.3派生类的定义 195
9.1.4派生类的生成过程 196
9.2派生类的公有、私有和保护继承 197
9.2.1公有继承 197
9.2.2私有继承 198
9.2.3保护继承 200
9.3派生类的构造函数和析构函数 201
9.3.1派生类的构造函数 201
9.3.2派生类的析构函数 203
9.4赋值兼容问题 205
9.5对象族作用域 206
9.6类的嵌套 207
9.6.1局部类 207
9.6.2类的嵌套 208
习题9 210
第10章 多态性与虚函数 212
10.1多重继承下派生类成员的访问 212
10.1.1作用域分辨 212
10.1.2虚基类 214
10.1.3虚基类及其派生类的构造函数 216
10.2虚函数 217
10.2.1虚函数的声明及应用 217
10.2.2虚析构函数 218
10.3多态性 220
10.3.1多态性的分类 221
10.3.2编译时的多态性 221
10.3.3运行时的多态性 222
10.4纯虚函数和抽象类 224
10.4.1纯虚函数 224
10.4.2抽象类 225
习题10 227
第11章 函数和运算符的重载 229
11.1函数的重载 229
11.1.1函数重载的概念 229
11.1.2构造函数的重载 230
11.1.3函数重载的有关规定 231
11.2运算符重载的概念 231
11.2.1C++中可以重载的运算符 232
11.2.2运算符重载的格式 232
11.3单目运算符重载 233
11.3.1重载单目运算符的规则 233
11.3.2“++”运算符重载 233
11.4双目运算符重载 235
11.4.1运算符重载为类的成员函数 235
11.4.2运算符重载为类的友元函数 237
11.5其他运算符的重载 238
11.5.1返回对象的“++”运算符重载 238
11.5.2赋值运算符重载 239
11.5.3复合赋值运算符重载 241
11.5.4关系运算符的重载 242
习题11 243
第12章 模板 245
12.1模板的基本概念 245
12.1.1无约束类属机制 245
12.1.2约束类属机制 246
12.1.3C++中模板的分类 246
12.2函数模板 247
12.2.1函数模板的声明 247
12.2.2函数模板的应用 248
12.2.3函数模板的重载 250
12.2.4用户定义参数类型的函数模板 251
12.3类模板 253
12.3.1类模板的声明 253
12.3.2类模板的应用 253
习题12 256
第13章 预处理和异常处理 257
13.1C++的预处理 257
13.1.1宏定义 257
13.1.2文件包含 261
13.1.3条件编译 262
13.2C++多文件程序结构 264
13.3异常处理的基本概念 265
13.3.1异常处理的基本思想 265
13.3.2异常的传播方向 265
13.3.3异常处理的执行过程 266
13.4C++异常处理的实现 266
13.4.1C++的异常类 266
13.4.2C++的try和catch的语句 266
13.4.3C++的throw语句 268
13.5异常处理中的构造函数和析构函数 269
习题13 270
第14章 流和文件 272
14.1流及流类库的层次结构 272
14.2输出流及常用的成员函数 273
14.2.1标准设备流对象 274
14.2.2cout流对象、插入操纵符和控制格式 274
14.2.3put和write成员函数 277
14.3输入流及常用的成员函数 278
14.3.1cin流对象和提取操纵符 278
14.3.2get和getline成员函数 279
14.3.3read成员函数 280
14.4文件的打开与关闭 281
14.4.1文件的打开 281
14.4.2文件的关闭 282
14.5文本文件的读/写 282
14.6二进制文件的读/写 284
14.7文件的随机读/写 286
习题14 289
附录A C++语言运算符的优先级和结合性 290
附录B ASCII码表 291
参考文献 292