第一篇 C++数据表达篇 19
第1章 C++入门(教学视频:33分钟) 19
1.1 C++概述 19
1.1.1 C++的历史 19
1.1.2 C++的特点 19
1.1.3 C与C++的区别 20
1.2 程序设计方法 21
1.2.1 结构化程序设计 21
1.2.2 面向对象程序设计 22
1.2.3 程序设计方法比较 22
1.3 C++开发环境——Visual C++ 6.0 23
1.3.1 工作区 23
1.3.2 编辑区(Editor Area) 24
1.3.3 输出窗口(Output Panel) 24
1.3.4 菜单栏、工具栏、状态栏 24
1.4 第一个C++程序——Hello World 25
1.4.1 创建源程序 25
1.4.2 编译连接 26
1.4.3 调试运行 27
1.5 C++源程序组成元素 27
1.5.1 基本组成 27
1.5.2 基本符号 28
1.5.3 标识符 28
1.5.4 保留字 29
1.5.5 分隔符 29
1.6 综合练习 29
1.7 小结 31
1.8 习题 31
第2章 变量和数据类型(教学视频:44分钟) 33
2.1 常量 33
2.1.1 声明常量 33
2.1.2 常量应用示例 34
2.2 变量 36
2.2.1 声明变量 36
2.2.2 变量的命名规则 36
2.2.3 变量的作用范围 37
2.2.4 变量应用示例 38
2.3 基本数据类型 39
2.3.1 整型 40
2.3.2 字符型 41
2.3.3 浮点型 42
2.3.4 布尔型 43
2.4 类型转换 44
2.4.1 隐式转换 44
2.4.2 显式转换 44
2.5 综合练习 45
2.6 小结 46
2.7 习题 46
第3章 运算符和表达式(教学视频:32分钟) 48
3.1 运算符 48
3.1.1 算术运算符 48
3.1.2 赋值运算符 49
3.1.3 关系运算符 51
3.1.4 逻辑运算符 51
3.1.5 条件运算符 52
3.1.6 逗号运算符 53
3.1.7 位运算符 53
3.1.8 sizeof运算符 54
3.1.9 运算符的优先级 54
3.2 表达式 55
3.2.1 算术表达式 55
3.2.2 关系表达式 56
3.2.3 逻辑表达式 57
3.2.4 条件表达式 58
3.2.5 赋值表达式 59
3.2.6 逗号表达式 60
3.3 语句 60
3.3.1 语句中的空格 60
3.3.2 空语句 61
3.3.3 声明语句 61
3.3.4 赋值语句 62
3.4 综合练习 62
3.5 小结 63
3.6 习题 63
第4章 程序控制结构(教学视频:43分钟) 65
4.1 顺序结构 65
4.1.1 表达式语句 65
4.1.2 输入语句 66
4.1.3 输出语句 66
4.1.4 格式控制符 67
4.1.5 应用示例 71
4.2 选择结构 71
4.2.1 if语句 72
4.2.2 if...else语句 72
4.2.3 多重if...else语句 73
4.2.4 switch语句 76
4.2.5 应用示例 77
4.3 循环结构 79
4.3.1 for语句 79
4.3.2 while语句 80
4.3.3 do...while语句 81
4.3.4 多重循环 81
4.3.5 应用示例 83
4.4 转向语句 83
4.5 综合练习 85
4.6 小结 86
4.7 习题 86
第二篇 C++面向过程设计篇 88
第5章 函数(教学视频:34分钟) 88
5.1 定义函数 88
5.1.1 函数概述 88
5.1.2 声明函数 89
5.1.3 应用示例 90
5.2 函数参数及原型 91
5.2.1 函数的参数及返回值 91
5.2.2 函数原型 92
5.2.3 main()函数 92
5.2.4 带参数 main()函数 94
5.3 调用函数 95
5.3.1 函数调用格式 95
5.3.2 传值调用 96
5.3.3 引用调用 97
5.3.4 嵌套调用 98
5.3.5 递归调用 98
5.3.6 带默认形参值的函数 100
5.4 变量的作用域 100
5.4.1 局部变量 101
5.4.2 全局变量 102
5.5 函数的作用域 103
5.6 函数重载 105
5.6.1 函数的重载 105
5.6.2 参数类型不同的函数重载 105
5.6.3 参数个数上不同的重载函数 106
5.7 综合练习 107
5.8 小结 108
5.9 习题 108
第6章 编译预处理(教学视频:43分钟) 111
6.1 预处理命令 111
6.2 宏 111
6.2.1 宏概述 111
6.2.2 不带参数的宏定义 112
6.2.3 取消宏 113
6.2.4 宏嵌套 114
6.2.5 带参数的宏定义 115
6.2.6 内联函数 119
6.2.7 宏与函数的区别 120
6.3 文件包含 121
6.3.1 #include命令 121
6.3.2 合理使用文件包含 122
6.4 条件编译 123
6.4.1 #ifdef形式 123
6.4.2 #ifndef形式 125
6.4.3 #if形式 125
6.5 其他命令 126
6.5.1 #error命令 126
6.5.2 #line命令 127
6.6 综合练习 127
6.7 小结 128
6.8 习题 128
第7章 数组(教学视频:41分钟) 130
7.1 声明数组 130
7.1.1 声明一维数组 130
7.1.2 声明多维数组 131
7.2 引用数组 132
7.2.1 引用一维数组 132
7.2.2 引用多维数组 133
7.3 数组的赋值 134
7.3.1 初始化数组 134
7.3.2 通过赋值表达式赋值 136
7.3.3 通过输入语句赋值 137
7.3.4 通过循环语句赋值 137
7.3.5 多维数组的赋值 138
7.4 字符串 139
7.4.1 传统字符串 139
7.4.2 字符数组 141
7.5 数组与函数 143
7.6 数组应用 144
7.6.1 顺序查找 145
7.6.2 折半查找 146
7.6.3 排序 148
7.7 综合练习 150
7.8 小结 151
7.9 习题 151
第8章 指针(教学视频:42分钟) 153
8.1 指针概述 153
8.1.1 指针的概念 153
8.1.2 定义指针 154
8.1.3 指针的初始化 154
8.2 指针的运算 156
8.2.1 指针的间接访问 156
8.2.2 指针的算术运算 157
8.2.3 指针的关系运算 159
8.2.4 指针的赋值运算 160
8.2.5 void指针和const指针 160
8.3 指针与数组 161
8.3.1 访问数组元素的方法 162
8.3.2 多维数组元素的访问 163
8.3.3 数组指针与指针数组 164
8.4 指针与函数 166
8.4.1 指针作为函数参数 166
8.4.2 指针型函数 167
8.4.3 函数指针 168
8.5 指针与字符串 169
8.6 指向指针的指针 171
8.7 综合练习 172
8.8 小结 173
8.9 习题 173
第9章 构造数据类型(教学视频:62分钟) 175
9.1 结构体 175
9.1.1 结构体概述 175
9.1.2 结构体类型说明 176
9.1.3 定义结构体类型变量 177
9.1.4 初始化结构体变量 178
9.1.5 引用结构体成员变量 180
9.1.6 结构体作为函数参数 182
9.2 共用体 183
9.2.1 共用体类型说明 183
9.2.2 定义共用体类型变量 183
9.2.3 引用共用体成员变量 184
9.3 枚举 186
9.3.1 定义枚举类型 186
9.3.2 定义枚举类型变量 187
9.3.3 引用枚举类型变量 188
9.4 类型重定义typedef 189
9.5 位域 191
9.5.1 定义位域变量 192
9.5.2 使用位域 193
9.6 综合练习 194
9.7 小结 195
9.8 习题 195
第三篇 C++面向对象编程篇 197
第10章 类和对象(教学视频:59分钟) 197
10.1 类 197
10.1.1 类的概述 197
10.1.2 结构到类 198
10.1.3 类的声明 200
10.1.4 类的访问控制 201
10.1.5 类的定义 203
10.2 对象 205
10.2.1 对象概述 205
10.2.2 对象数组 205
10.3 构造函数 207
10.3.1 构造函数的概念 207
10.3.2 构造函数的声明和定义 208
10.3.3 构造函数的调用 209
10.3.4 不带参数的构造函数 210
10.3.5 带有默认参数的构造函数 211
10.3.6 构造函数的重载 212
10.4 拷贝构造函数 213
10.4.1 定义拷贝构造函数 213
10.4.2 调用拷贝构造函数 214
10.4.3 默认拷贝构造函数 216
10.5 析构函数 217
10.6 友元 218
10.6.1 友元函数 218
10.6.2 友元成员 219
10.6.3 友元类 221
10.7 综合练习 222
10.8 小结 224
10.9 习题 224
第11章 继承(教学视频:82分钟) 226
11.1 继承与派生 226
11.1.1 继承与派生概述 226
11.1.2 声明派生类 226
11.2 访问控制 227
11.2.1 公有继承 228
11.2.2 私有派生 229
11.2.3 保护继承 231
11.3 派生类的构造函数和析构函数 234
11.3.1 执行顺序和构建原则 235
11.3.2 派生类的构造函数 235
11.3.3 派生类析构函数的构建 236
11.4 多重继承 237
11.4.1 二义性问题 237
11.4.2 声明多重继承 239
11.4.3 多重继承的构造函数和析构函数 241
11.5 虚基类 243
11.5.1 虚基类的引入 243
11.5.2 定义虚基类 244
11.5.3 虚基类的构造函数和初始化 246
11.6 综合练习 247
11.7 小结 249
11.8 习题 249
第12章 多态(教学视频:61分钟) 251
12.1 多态 251
12.1.1 多态的含义 251
12.1.2 多态的作用 252
12.1.3 多态的引入 252
12.2 函数重载 254
12.3 虚函数 255
12.3.1 虚函数的引入 255
12.3.2 定义虚函数 257
12.3.3 使用虚函数 258
12.3.4 多重继承和虚函数 259
12.3.5 虚函数的注意事项 261
12.4 抽象类 261
12.4.1 纯虚函数 261
12.4.2 抽象类 263
12.5 综合练习 264
12.6 小结 267
12.7 习题 267
第13章 运算符重载(教学视频:60分钟) 269
13.1 运算符重载简介 269
13.1.1 运算符重载的定义 269
13.1.2 运算符重载的特点 270
13.1.3 运算符重载的规则 271
13.2 运算符重载的形式 271
13.2.1 重载为类的成员函数 272
13.2.2 双目运算符重载为成员函数 272
13.2.3 单目运算符重载为成员函数 273
13.2.4 运算符重载为类的友元函数 275
13.2.5 双目运算符重载为友元函数 275
13.2.6 单目运算符重载为友元函数 276
13.2.7 成员运算符函数与友元运算符函数的比较 278
13.3 特殊运算符的重载 278
13.3.1 “++”和“--”的重载 278
13.3.2 赋值运算符“=”的重载 279
13.3.3 下标运算符“[]”的重载 281
13.4 类类型转换 283
13.5 综合练习 284
13.6 小结 286
13.7 习题 286
第14章 输入/输出流(教学视频:54分钟) 288
14.1 输入/输出流的引入 288
14.1.1 printf与scanf的缺陷 288
14.1.2 输入/输出流简介 289
14.1.3 输入/输出流类层次 290
14.2 标准输入/输出流 291
14.2.1 标准输出流对象 291
14.2.2 标准输入流对象 292
14.2.3 标准错误输出流对象 293
14.3 输入/输出流成员函数 294
14.3.1 get()函数:输出字符串 294
14.3.2 getline()函数:获取字符串 295
14.4 输入/输出的格式控制 296
14.4.1 用ios类的成员函数进行格式控制 296
14.4.2 使用格式控制符进行格式控制 298
14.5 用户自定义数据类型的输入/输出 300
14.5.1 重载输出运算符“<<” 300
14.5.2 重载输入运算符“>>” 302
14.6 综合练习 303
14.7 小结 304
14.8 习题 304
第四篇 C++高级特性篇 306
第15章 文件(教学视频:63分钟) 306
15.1 文件和流 306
15.1.1 文件概述 306
15.1.2 文件流类 307
15.2 文件的打开与关闭 308
15.2.1 打开文件 308
15.2.2 关闭文件 310
15.3 文件的顺序读写 310
15.3.1 读写文本文件 311
15.3.2 文本文件应用示例 312
15.3.3 二进制文件概述 313
15.3.4 读写二进制文件 314
15.4 文件的随机读写 317
15.5 综合练习 318
15.6 小结 320
15.7 习题 320
第16章 命名空间(教学视频:57分钟) 323
16.1 命名空间 323
16.1.1 命名空间概述 323
16.1.2 定义命名空间 324
16.2 使用命名空间 326
16.2.1 使用作用域运算符引用成员 326
16.2.2 使用using指令 327
16.2.3 使用using声明 328
16.2.4 using指令与using声明的比较 328
16.3 类的作用域 329
16.3.1 静态数据成员 329
16.3.2 静态成员函数 330
16.4 作用域 332
16.4.1 局部作用域 332
16.4.2 全局作用域 333
16.4.3 作用域嵌套 334
16.5 this指针 335
16.6 综合练习 337
16.7 小结 339
16.8 习题 339
第17章 引用与内存管理(教学视频:63分钟) 342
17.1 引用 342
17.1.1 引用概述 342
17.1.2 引用的使用 343
17.2 引用的操作 344
17.2.1 引用作为函数参数 344
17.2.2 引用作为返回值 345
17.3 动态内存分配 346
17.3.1 申请动态内存 346
17.3.2 释放空间 347
17.3.3 malloc和free库函数 349
17.4 const引用 350
17.5 指针与引用的区别 352
17.6 综合练习 353
17.7 小结 355
17.8 习题 355
第五篇 C++编程实践篇 358
第18章 标准模板库STL(教学视频:63分钟) 358
18.1 标准模板库 358
18.1.1 STL概述 358
18.1.2 STL的引入 358
18.1.3 STL的组成 359
18.2 算法 360
18.3 容器 362
18.3.1 容器概述 362
18.3.2 向量 363
18.3.3 列表 364
18.3.4 集合 366
18.3.5 双端队列 367
18.3.6 栈 368
18.3.7 映射和多重映射 369
18.4 迭代器 370
18.5 综合练习 372
18.6 小结 373
18.7 习题 373
第19章 模板与C++标准库(教学视频:58分钟) 375
19.1 模板概述 375
19.1.1 模板简介 375
19.1.2 模板的引入 376
19.2 函数模板 377
19.2.1 定义函数模板 377
19.2.2 生成模板函数 378
19.2.3 函数模板的异常处理 379
19.3 类模板 380
19.3.1 定义类模板 380
19.3.2 模板类 381
19.4 C++标准库概述 383