第1部分?C++语言基础
第1章?程序与主函数 3
1.1 程序及其表示 3
1.1.1 计算机 3
1.1.2 计算机程序 4
1.1.3 程序设计语言 5
1.2 C++介绍 5
1.2.1 C语言 6
1.2.2 C++语言 6
1.2.3 C++应用领域 7
1.3 简单的C++程序示例 7
1.3.1 仅包含输出的程序 7
1.3.2 包含输入、处理、输出
???的程序 8
1.3.3 包含自定义函数的程序 9
1.3.4 主函数 10
1.4 C++开发环境 11
1.4.1 程序开发过程 11
1.4.2 本地开发环境 11
1.4.3 在线判题系统 14
1.4.4 编译错误信息 15
1.5 小结 16
1.5.1 思维导图 16
1.5.2 思维模式 16
1.5.3 逻辑结构 17
练习 17
第2章?基本类型与变量 19
2.1 一个C++程序例子 19
2.2 词法元素 21
2.2.1 字符集 21
2.2.2 注释 21
2.2.3 标识符 22
2.2.4 保留字 22
2.2.5 运算符 23
2.2.6 分隔符 23
2.3 C++数据类型 23
2.3.1 概述 23
2.3.2 类型修饰符 23
2.3.3 常用基本数据类型 25
2.4 变量 26
2.4.1 变量的定义与初始化 26
2.4.2 整型变量 28
2.4.3 浮点型变量 29
2.4.4 字符型变量 31
2.4.5 逻辑型变量 31
2.5 常量 32
2.5.1 整型数 32
2.5.2 浮点型数 33
2.5.3 字符 33
2.5.4 字符串 35
2.5.5 const常量 35
2.6 输入与输出 37
2.6.1 cin与cout对象的
???使用 37
2.6.2 格式控制 38
2.7 C++编码风格 41
2.8 小结 42
2.8.1 思维导图 42
2.8.2 思维模式 42
2.8.3 逻辑结构 43
练习 43
第3章?运算符与表达式 46
3.1 分类和规则 46
3.1.1 运算符的分类 46
3.1.2 表达式运算规则 47
3.2 算术运算与赋值 49
3.2.1 算术运算 49
3.2.2 赋值与复合赋值 51
3.2.3 自增和自减 52
3.3 关系运算 54
3.4 逻辑运算 55
3.5 类型转换 56
3.5.1 隐式类型转换 56
3.5.2 显式类型转换 57
3.6 位运算 58
3.7 逗号运算 60
3.8 条件运算 60
3.9 小结 61
3.9.1 思维导图 61
3.9.2 思维模式 61
3.9.3 逻辑结构 62
练习 62
第4章?流程控制 65
4.1 基本概念 65
4.1.1 语句 65
4.1.2 用流程图表示算法 66
4.2 顺序结构 67
4.3 选择结构 68
4.3.1 if语句 68
4.3.2 switch语句 73
4.4 循环结构 75
4.4.1 while循环语句 76
4.4.2 do-while循环语句 77
4.4.3 for循环语句 79
4.5 其他控制语句 81
4.5.1 break与continue
???语句 81
4.5.2 goto语句 84
4.6 循环嵌套 85
4.7 综合应用 86
4.8 小结 90
4.8.1 思维导图 90
4.8.2 思维模式 90
4.8.3 逻辑结构 92
练习 92
第2部分?C++过程化编程
第5章?函数 99
5.1 函数的分类 99
5.2 自定义函数 100
5.2.1 函数定义 101
5.2.2 函数调用 102
5.2.3 函数原型 105
5.3 函数的嵌套调用与递归调用 106
5.3.1 函数的嵌套调用 106
5.3.2 递归调用 106
5.4 函数的特殊形式 109
5.4.1 内联函数 109
5.4.2 函数重载 110
5.4.3 默认参数 112
5.5 小结 115
5.5.1 思维导图 115
5.5.2 思维模式 115
5.5.3 逻辑结构 115
练习 115
第6章?多文件 120
6.1 跨文件访问变量 120
6.1.1 变量的作用域和可
???见性 120
6.1.2 变量的生命期 124
6.2 跨文件调用函数 129
6.2.1 外部函数 128
6.2.2 静态函数 129
6.3 多文件结构 130
6.3.1 头文件 130
6.3.2 预处理指令 131
6.3.3 多文件结构示例 132
6.4 小结 133
6.4.1 思维导图 133
6.4.2 思维模式 133
6.4.3 逻辑结构 134
练习 135
第7章?数组 139
7.1 一维数组 139
7.1.1 一维数组定义 139
7.1.2 一维数组初始化 140
7.1.3 一维数组元素的
???访问 140
7.1.4 一维数组作为函数
???参数 141
7.2 二维数组 142
7.2.1 二维数组定义 142
7.2.2 二维数组初始化 143
7.2.3 二维数组元素的
???访问 143
7.2.4 二维数组作为函数
???参数 144
7.3 字符数组 145
7.3.1 C风格字符串 145
7.3.2 字符数组 145
7.3.3 字符串函数 147
7.4 数组排序 147
7.4.1 冒泡排序 148
7.4.2 插入排序 149
7.5 小结 150
7.5.1 思维导图 150
7.5.2 思维模式 150
7.5.3 逻辑结构 152
练习 152
第8章?指针 155
8.1 指针变量 155
8.1.1 指针定义 156
8.1.2 指针初始化和赋值 156
8.1.3 用指针间接访问 156
8.2 指针与数组 157
8.2.1 指针运算 157
8.2.2 用指针访问数组
???元素 159
8.2.3 字符指针 160
8.3 指针与函数 161
8.3.1 数组以指针参数
???传递 161
8.3.2 修改主调函数中
???变量 162
8.3.3 指针函数 164
8.3.4 void指针参数 164
8.4 指针与堆内存 165
8.4.1 free和malloc 165
8.4.2 new和delete 166
8.5 小结 167
8.5.1 思维导图 167
8.5.2 思维模式 167
8.5.3 逻辑结构 169
练习 169
第9章?引用与结构体 171
9.1 引用 171
9.1.1 引用定义和初始化 171
9.1.2 引用访问 172
9.1.3 引用作为函数参数 172
9.2 结构体 174
9.2.1 结构体类型 174
9.2.2 结构体变量 175
9.2.3 结构体指针 176
9.2.4 结构体数组 177
9.2.5 结构体引用 178
9.2.6 数据类型小结 180
9.3 结构体应用:链表 180
9.3.1 链表概念 180
9.3.2 链表实现 181
9.4 综合应用 184
9.4.1 图书管理系统V1
???分析 184
9.4.2 图书管理系统V1
???实现 185
9.4.3 图书管理系统V1
???运行 188
9.5 小结 190
9.5.1 思维导图 190
9.5.2 思维模式 190
9.5.3 逻辑结构 190
练习 192
第3部分?C++面向对象编程
第10章?类与对象 199
10.1 类与对象 199
10.2 类定义 200
10.2.1 结构体与类 200
10.2.2 类定义 200
10.2.3 成员函数定义 201
10.3 对象定义与使用 202
10.3.1 对象定义 202
10.3.2 成员函数调用 202
10.3.3 指针、引用和
??? 数组 203
10.4 多文件结构 205
10.5 面向对象编程特征:封装 206
10.6 小结 207
10.6.1 思维导图 207
10.6.2 思维模式 207
10.6.3 逻辑结构 208
练习 208
第11章?C++标准库 210
11.1 组织结构 210
11.2 命名空间 211
11.2.1 标准命名空间 211
11.2.2 自定义命名空间 212
11.3 字符串string类 213
11.3.1 创建对象 213
11.3.2 输入/输出 214
11.3.3 常用操作 215
11.4 动态数组vector类 216
11.4.1 创建对象 216
11.4.2 常用操作 217
11.5 基于范围的for循环 218
11.6 小结 220
11.6.1 思维导图 220
11.6.2 思维模式 220
11.6.3 逻辑结构 220
练习 221
第12章?构造函数 222
12.1 构造函数 222
12.1.1 无参构造函数 222
12.1.2 重载构造函数 223
12.1.3 this指针 225
12.2 析构函数 226
12.2.1 调用顺序 226
12.2.2 自定义析构函数 228
12.3 构造函数初始化列表 229
12.3.1 必要性 229
12.3.2 对象构造顺序 231
12.4 拷贝构造函数 233
12.4.1 默认拷贝构造
??? 函数 233
12.4.2 自定义拷贝构造
??? 函数 234
12.5 综合应用 236
12.5.1 图书管理系统V2
??? 分析 236
12.5.2 图书管理系统V2
??? 实现 236
12.5.3 图书管理系统V2
??? 运行 242
12.6 小结 243
12.6.1 思维导图 243
12.6.2 思维模式 243
12.6.3 逻辑结构 244
练习 244
第13章?静态成员与友元 247
13.1 静态成员 247
13.1.1 静态数据成员 247
13.1.2 静态成员函数 250
13.2 友元 252
13.2.1 友元函数 252
13.2.2 友元类 255
13.3 小结 256
13.3.1 思维导图 256
13.3.2 思维模式 256
13.3.3 逻辑结构 257
练习 257
第14章?运算符重载 260
14.1 何为运算符重载 260
14.2 运算符重载的规则 261
14.3 成员函数实现重载 262
14.4 友元函数实现重载 263
14.5 常用运算符重载 264
14.5.1 赋值运算符 265
14.5.2 提取和插入运
??? 算符 267
14.6 小结 270
14.6.1 思维导图 270
14.6.2 思维模式 270
14.6.3 逻辑结构 271
练习 272
第15章?继承与多态 273
15.1 继承 273
15.1.1 继承的概念 273
15.1.2 继承方式 276
15.2 派生类 277
15.2.1 构造函数 277
15.2.2 析构函数 279
15.2.3 组合与继承 280
15.3 多态 283
15.3.1 多态概念 283
15.3.2 向上转型 284
15.3.3 虚函数 286
15.4 抽象类 290
15.4.1 纯虚函数 290
15.4.2 抽象类的使用 291
15.5 小结 292
15.5.1 思维导图 292
15.5.2 思维模式 293
15.5.3 逻辑结构 294
练习 294
第4部分 C++泛型编程
第16章?模板 299
16.1 模板概述 299
16.1.1 模板的概念 299
16.1.2 模板的分类 299
16.1.3 模板的实例化 300
16.2 函数模板 300
16.2.1 函数模板定义 300
16.2.2 函数模板使用 301
16.2.3 函数模板和函数
??? 重载 302
16.3 类模板 304
16.3.1 类模板定义 304
16.3.2 成员函数定义 305
16.3.3 类模板使用 305
16.4 标准模板库 307
16.4.1 容器 307
16.4.2 泛型算法 308
16.5 小结 311
16.5.1 思维导图 311
16.5.2 思维模式 311
16.5.3 逻辑结构 311
练习 312
第17章?输入/输出流 314
17.1 组织结构 314
17.1.1 头文件组织 314
17.1.2 类的组织 315
17.2 标准流 316
17.2.1 标准输入 316
17.2.2 标准输出 316
17.3 文件流 318
17.3.1 打开文件 318
17.3.2 读写文件 320
17.3.3 读写位置控制 321
17.4 字符串流 322
17.5 综合应用 323
17.5.1 图书管理系统V3
??? 分析 323
17.5.2 图书管理系统V3
??? 实现 324
17.5.3 图书管理系统V3
??? 运行 330
17.6 小结 332
17.6.1 思维导图 332
17.6.2 思维模式 332
17.6.3 逻辑结构 333
练习 333
附录A?常见编译错误分析 334
A.1 编译错误 334
A.1.1 解决思路 334
A.1.2 实例分析 335
A.2 连接错误 344
A.2.1 解决思路 344
A.2.2 实例分析 344
附录B?Dev-C++程序调试 346
B.1?调试准备 346
B.1.1?设置编译选项 346
B.1.2?选择Debug模式 346
B.2?调试过程 347
B.2.1?设置断点 347
B.2.2?启动调试 347
B.2.3?单步执行 347
B.2.4?查看变量 348
B.2.5?结束调试 350
B.3?调试技巧 350
参考文献 351
C++程序设计简明教程
目录