第1章 C++概述 1
1.1 C++的起源 1
1.2 C++的特点 1
1.3 C++程序的基本结构 2
1.4 C++上机操作 5
1.4.1 C++程序的开发步骤 5
1.4.2 C++程序上机操作方法 6
本章小结 9
习题1 10
第2章 数据类型和表达式 11
2.1 数据类型 11
2.2 常量和变量 13
2.2.1 常量 13
2.2.2 变量 16
2.3 运算符和表达式 17
2.3.1 算术运算符和算术表达式 17
2.3.2 赋值运算符和赋值表达式 19
2.3.3 自增、自减运算符 20
2.3.4 关系运算符和关系表达式 21
2.3.5 逻辑运算符和逻辑表达式 22
2.3.6 逗号运算符和逗号表达式 24
2.3.7 复合赋值运算符 25
2.3.8 数据类型长度运算符(sizeof运算符) 25
2.4 简单输入和输出 26
2.4.1 数据输出cout 26
2.4.2 数据输入cin 27
2.4.3 简单输入/输出格式控制 28
本章小结 29
习题2 30
实验二 32
第3章 程序结构和流程控制语句 33
3.1 程序的三种基本结构和语句 33
3.1.1 程序的三种基本结构 33
3.1.2 C++程序的组成 34
3.1.3 C++程序的语句 35
3.2 分支语句 36
3.2.1 if语句 36
3.2.2 条件运算符和条件表达式 41
3.2.3 switch语句 42
3.3 循环语句 45
3.3.1 while语句 45
3.3.2 do…while语句 47
3.3.3 for语句 49
3.3.4 三种循环语句的比较 52
3.3.5 循环语句的嵌套 52
3.4 控制执行顺序的语句 53
3.4.1 break语句 53
3.4.2 continue语句 54
3.4.3 语句标号和goto语句 55
3.4.4 exit()和abort()函数 56
3.5 程序设计举例(习题课) 57
3.5.1 分支语句应用举例 57
3.5.2 循环语句应用举例 61
本章小结 65
习题3 67
实验三(1) 70
实验三(2) 71
第4章 数组 73
4.1 数组的定义和应用 73
4.1.1 一维数组的定义和使用 73
4.1.2 二维数组的定义和使用 80
4.2 字符数组的定义和使用 84
4.2.1 字符数组和字符串 84
4.2.2 字符串处理函数 87
4.3 数组应用举例(习题课) 90
4.3.1 一维数组应用举例 90
4.3.2 二维数组应用举例 92
4.3.3 字符数组应用举例 95
本章小结 96
习题4 97
实验四(1) 100
实验四(2) 101
第5章 函数 103
5.1 函数的定义和调用 103
5.1.1 函数的概念 103
5.1.2 函数的定义 104
5.1.3 函数的调用 105
5.1.4 实参与形参的数据传送 108
5.2 函数的嵌套调用和递归调用 109
5.2.1 函数的嵌套调用 109
5.2.2 函数的递归调用 110
5.3 数组作函数参数(习题课) 113
5.3.1 数组元素作函数实参 113
5.3.2 数组名作函数参数 114
5.4.1 作用域 118
5.4 变量的存储类型 118
5.4.2 局部变量与全局变量 120
5.4.3 动态与静态变量 121
5.4.4 变量的存储类型 121
5.5 内联函数 127
5.6 具有默认参数值的函数 128
5.7 函数的重载 129
本章小结 130
习题5 133
实验五 137
第6章 编译预处理 139
6.1 文件包含处理 139
6.2.1 不带参数的宏定义 142
6.2 宏定义 142
6.2.2 带参数的宏定义 144
6.3 条件编译 146
本章小结 149
习题6 150
第7章 指针 152
7.1 指针与指针变量 152
7.1.1 指针的概念 152
7.1.2 指针变量的定义与引用 152
7.1.3 指针变量的运算 154
7.2 指针与数组 159
7.2.1 一维数组与指针 159
7.2.2 二维数组与指针 160
7.2.3 字符串与指针 164
7.3 指针变量与数组作为函数参数(习题课) 166
7.3.1 指针变量作为函数参数 166
7.3.2 数组与指针作为函数参数 168
7.4 指针数组和指向一维数组的指针变量 171
7.4.1 指针数组 171
7.4.2 指向一维数组的指针变量 173
7.5 返回指针值的函数与函数指针变量 175
7.5.1 返回指针值的函数 175
7.5.2 函数指针变量 178
7.6 new和delete运算符 181
7.6.1 new运算符 181
7.6.2 delete运算符 182
7.6.3 使用new和delete运算符应注意的事项 183
7.7 引用类型变量和const类型的指针 184
7.7.1 引用类型变量的定义及使用 184
7.7.2 const类型变量 185
本章小结 187
习题7 190
实验七(1) 193
实验七(2) 194
第8章 枚举型和结构体 195
8.1 枚举类型的定义及应用 195
8.1.1 枚举类型的定义 195
8.1.2 枚举类型变量的定义 196
8.1.3 枚举类型变量的引用 197
8.2.1 结构体的概念 200
8.2.2 结构体类型的定义 200
8.2 结构体的定义及应用 200
8.2.3 结构体变量的定义 201
8.2.4 结构体变量的引用 202
8.2.5 结构体变量与数组作为函数参数 204
8.3 链表 208
8.3.1 链表的概念 208
8.3.2 链表的基本操作 209
本章小结 218
习题8 219
实验八(1) 220
实验八(2) 222
第9章 类和对象 223
9.1 概述 223
9.2.1 类 225
9.2 类与对象 225
9.2.2 对象 229
9.3 构造函数 232
9.3.1 构造函数的定义 232
9.3.2 用构造函数初始化对象的过程 234
9.3.3 默认构造函数 235
9.3.4 拷贝的构造函数 236
9.3.5 用new运算符动态定义对象 237
9.4 析构函数 239
9.4.1 定义析构函数 239
9.4.2 析构函数的调用 239
9.4.3 默认的析构函数 243
9.5 构造函数和对象成员 243
9.6 this指针 246
本章小结 247
习题9 248
实验九 251
第10章 继承和派生类 253
10.1 继承与派生 253
10.1.1 继承与派生的基本概念 253
10.1.2 派生类的定义 255
10.1.3 派生类的构造函数与基类成员的初始化 257
10.2 冲突、支配规则和赋值兼容性 262
10.2.1 冲突 262
10.2.2 支配规则 264
10.3 虚基类 266
10.3.1 多重派生的基类拷贝 266
10.2.4 基类和对象成员的几点说明 266
10.2.3 赋值兼容规则 266
10.3.2 虚基类 268
10.4 静态数据成员 269
本章小结 272
习题10 274
实验十 276
第11章 友元与运算符重载 278
11.1 友元函数 278
11.1.1 定义普通函数为友元函数 278
11.1.2 友元注意事项 279
11.2 运算符重载 280
11.2.1 运算符重载的概念 280
11.2.2 二元运算符重载 280
11.2.3 一元运算符重载 285
11.2.4 字符串类运算符重载 293
11.3 多态性与虚函数 297
11.3.1 多态性技术 297
11.3.2 虚函数 297
11.3.3 纯虚函数 300
11.4 类与对象的特性 301
本章小结 302
习题11 304
实验十一 306
第12章 流类体系与文件操作 308
12.1 流类体系 308
12.1.1 流(Stream) 308
12.1.2 基本流类体系 309
12.1.3 标准输入/输出流 310
12.1.4 流的格式控制 311
12.1.5 数据输入/输出成员函数 318
12.2 文件操作 320
12.2.1 C++文件概述 320
12.2.2 C++的文件流类体系 320
12.2.3 文件的使用方法 321
12.2.4 文本文件的使用 325
12.2.5 二进制文件的使用 330
本章小结 339
习题12 342
实验十二 343
附录A C++中的关键字 345
附录B 常用库函数 347
参考文献 350