第1章 C++语言概述 1
1.1 C++语言的起源和发展 1
1.2 C++语言的特点 2
1.3 C++语言程序设计 2
1.4 C++程序的开发步骤和上机调试流程 7
习题一 7
第2章 数据类型、运算符和表达式 9
2.1 C++的字符集、关键字和标识符 9
2.1.1 C++的字符集 9
2.1.2 标识符和关键字 9
2.2 C++的基本数据类型 11
2.2.1 基本数据类型 11
2.2.2 常量 13
2.2.3 变量 16
2.3 运算符与表达式 17
2.3.1 算术运算符与算术表达式 19
2.3.2 ++(增1)和--(减1)运算符 21
2.3.3 赋值运算符与赋值表达式 21
2.3.4 数据类型转换 22
2.3.5 关系运算符与关系表达式 24
2.3.6 逻辑运算符与逻辑表达式 25
2.3.7 逗号运算符 26
2.3.8 条件运算符“?:” 26
2.3.9 sizeof运算符 27
2.4 常用库函数 27
2.4.1 数学库函数 27
2.4.2 伪随机函数 29
习题二 29
第3章 输入/输出 31
3.1 C++的输入/输出 31
3.2 预定义输入流对象cin 31
3.2.1 输入十进制整数和实数 31
3.2.2 输入字符数据 32
3.2.3 输入十六进制或八进制数据 33
3.3 预定义输出流对象cout 34
3.3.1 输出字符或字符串 34
3.3.2 输出十进制整数 35
3.3.3 输出八进制数、十六进制数 36
3.3.4 输出实数 36
3.4 预定义格式控制符 38
3.5 程序举例 39
习题三 39
实验一 简单程序设计 40
第4章 流程控制 47
4.1 算法 47
4.1.1 算法的概念 47
4.1.2 算法举例 48
4.1.3 算法的表达 48
4.1.4 三种基本流程控制结构 49
4.2 C++语言的语句 50
4.3 选择语句 50
4.3.1 条件语句 50
4.3.2 开关语句 53
4.4 循环语句 55
4.4.1 while语句 56
4.4.2 do…while语句 57
4.4.3 for语句 59
4.4.4 循环语句小结 61
4.5 转向语句 63
4.5.1 break语句 64
4.5.2 continue语句 65
4.5.3 exit函数 65
4.6 程序举例 66
习题四 69
实验二 选择结构 70
实验三 循环结构 71
第5章 函数 73
5.1 模块化程序设计方法 73
5.2 函数定义和调用 77
5.2.1 函数定义 78
5.2.2 函数调用 79
5.2.3 函数原型 82
5.2.4 函数形参的默认值 84
5.2.5 内联函数 85
5.2.6 函数重载 86
5.3 标识符的作用域 87
5.3.1 块作用域(局部作用域) 87
5.3.2 文件作用域(全局作用域) 89
5.3.3 函数原型作用域 91
5.3.4 函数作用域 91
5.4 变量的存储种类 91
5.4.1 自动变量 92
5.4.2 寄存器变量 93
5.4.3 外部变量 93
5.4.4 静态变量 95
5.4.5 小结 97
5.5 指针基础 98
5.5.1 地址的概念 98
5.5.2 指针的概念 98
5.5.3 指针变量 99
5.5.4 指针做函数的参数 100
5.5.5 指针做函数的返回值 102
5.6 引用 103
5.6.1 引用型变量的说明和使用 103
5.6.2 引用做函数的参数 103
5.6.3 引用做函数的返回值 105
5.7 函数的参数传递方式小结 106
5.8 递归函数 106
习题五 110
实验四 函数 114
第6章 编译预处理 116
6.1 文件包含 116
6.2 宏 118
6.2.1 不带参数的宏 118
6.2.2 带参数的宏 120
6.3 条件编译 121
习题六 123
第7章 数组 124
7.1 一维数组 124
7.1.1 一维数组的定义、引用和初始化 124
7.1.2 数组做函数参数 126
7.1.3 排序 131
7.1.4 查找 133
7.2 二维数组 136
7.3 字符数组 140
7.3.1 字符数组的定义和初始化 140
7.3.2 字符数组的输入/输出 142
7.3.3 字符串处理函数 143
7.3.4 应用举例 146
习题七 151
实验五 数组 153
第8章 指针 156
8.1 指针的运算 156
8.1.1 指针的赋值 156
8.1.2 指针的算术运算 157
8.1.3 指针的关系运算 158
8.2 指针与数组 159
8.2.1 指针与一维数组 160
8.2.2 指针与多维数组 161
8.2.3 指针与字符串 164
8.3 指针数组和指向指针的指针变量 166
8.3.1 指针数组 166
8.3.2 指向一维数组的指针变量 168
8.3.3 指向指针的指针变量 170
8.3.4 指针的引用 171
8.4 指针与函数 172
8.4.1 数组做函数的参数 172
8.4.2 带参数的main函数 174
8.4.3 指向函数的指针 176
8.5 new和delete运算符 179
8.5.1 new运算符 180
8.5.2 delete运算符 181
8.6 指针(或引用)参数与数据安全 182
习题八 183
实验六 指针(一) 185
实验七 指针(二) 187
第9章 结构体和单向链表 189
9.1 结构体 189
9.1.1 结构体类型的定义 189
9.1.2 结构体变量的定义 190
9.1.3 结构体变量的使用 192
9.2 单向链表 196
9.2.1 单向链表的概念 196
9.2.2 单向链表的建立和基本操作 197
9.3 定义类型别名 202
习题九 203
实验八 结构体与单向链表 203
第10章 类和对象 205
10.1 类和对象 206
10.1.1 类的定义 206
10.1.2 类成员的访问控制 208
10.1.3 类的函数成员 208
10.1.4 对象 209
10.1.5 对象数组 211
10.1.6 this指针 212
10.2 构造函数和析构函数 214
10.2.1 构造函数的作用 214
10.2.2 构造函数的定义和调用 214
10.2.3 构造函数的重载 216
10.2.4 默认的构造函数 217
10.2.5 构造函数的类型转换功能 218
10.2.6 对象成员与构造函数 219
10.2.7 析构函数 221
10.2.8 复制构造函数 223
10.3 友元 226
10.3.1 友元函数 226
10.3.2 友元类 228
10.4 静态成员 230
10.4.1 静态数据成员 230
10.4.2 静态函数成员 232
10.5 常数据成员、常对象和常函数成员 234
10.5.1 常数据成员 234
10.5.2 常对象 234
10.5.3 常函数成员 234
习题十 236
实验九 类和对象 238
第11章 运算符重载 240
11.1 运算符重载 241
11.1.1 重载二元运算符为类运算符 242
11.1.2 重载一元运算符为类运算符 244
11.1.3 重载运算符为友元运算符 246
11.2 常用特殊运算符的重载 249
11.2.1 转换函数 249
11.2.2 赋值运算符 251
11.2.3 “++”和“--”运算符 252
11.2.4 下标运算符 254
11.3 自定义字符串类 256
11.4 小结 260
习题十一 260
实验十 运算符重载 261
第12章 继承和派生 263
12.1 继承 263
12.1.1 基本概念 263
12.1.2 单一继承 263
12.1.3 多重继承 268
12.1.4 初始化基类成员和对象成员 270
12.1.5 应用举例 273
12.2 歧义、优先规则和赋值兼容规则 276
12.2.1 歧义 276
12.2.2 优先规则 278
12.2.3 赋值兼容规则 279
12.3 虚基类 280
12.4 虚函数 283
12.4.1 虚函数的定义 283
12.4.2 虚函数与多态性 283
12.4.3 虚函数的特殊性 285
12.4.4 纯虚函数 287
习题十二 288
实验十一 继承和派生 289
第13章 文件 291
13.1 基本概念 291
13.1.1 字节流 291
13.1.2 文件 291
13.1.3 缓冲 292
13.2 文件 292
13.2.1 文件流的用法 292
13.2.2 文件的打开 293
13.2.3 文件的关闭 294
13.2.4 文本文件的使用 294
13.2.5 二进制文件的使用 296
13.3 重载提取和插入运算符 299
13.4 应用举例 300
习题十三 302
实验十二 文件 302
附录A ASCII码表 303
附录B C++语言常用标准库 304
B.1 数学库函数 305
B.2 字符处理函数 306
B.3 字符串处理函数 307
B.4 内存操作函数 308
B.5 通用函数 308
B.6 时间和日期函数 309
B.7 输入/输出类库常用函数成员 310
附录C Visual C++ 6.0程序调试技术 312
C.1 Visual C++的集成开发环境 312
C.1.1 菜单栏 313
C.1.2 工具栏 317
C.1.3 工作区窗口 319
C.1.4 文本编辑器和编辑菜单 320
C.1.5 文件菜单 322
C.1.6 Build菜单 323
C.2 Visual C++开发C++程序的基本过程 324
C.2.1 创建C++程序的方式 324
C.2.2 源程序的编辑与格式化 326
C.2.3 程序的编译、链接和运行 327
C.3 程序调试 328
C.3.1 程序的错误类型 328
C.3.2 编译错误、链接错误的查看和修改 329
C.3.3 运行错误、逻辑错误的判断与调试 330
C.3.4 基本调试手段 331
C.3.5 集成开发环境的跟踪调试功能 333
C.4 Visual C++的帮助功能 338
附录D 实验要求 340
参考文献 342