C++从入门到精通

李伟明、侯春多编著图书
一种比较常用的计算机编程语言学习工具书
内容简介
本书从初学者的角度出发，以通俗易懂的语言，配合丰富的实例，详细讲解了C++语言的基础知识。本书包括4篇18章：第1篇是基础知识，包括了绪论，数据类型，表达式与语句，条件判断语句，循环语句，函数，数组、指针和引用，构造数据类型；第2篇是核心技术，包括了面向对象编程、类和对象、继承与派生；第3篇是高级应用，包括了模板、STL标准模板库、RTTI与异常处理、程序调测、文件操作、网络通信；第4篇为项目实战，结合图书管理系统，依照软件工程的开发流程，讲述如何进行实际开发。书中所有知识都结合具体实例进行介绍，涉及的程序代码给出了详细的注释，可以使读者轻松领会C++语言的强大，快速提高开发技能。
本书列举了大量的小型实例、综合实例和部分项目案例；所附DVD光盘内容有同步视频讲解、实例源程序、“实践与练习”答案等；
本书的服务网站提供了模块库、案例库、题库、素材库、答疑服务。本书内容详尽，实例丰富，非常适合作为编程初学者的学习用书，也适合作为开发人员的查阅、参考资料。
图书目录
目 录
第1篇 基础知识
第1章 绪论 3
视频讲解：1小时18分钟
1.1 C++历史背景 4
1.1.1 20世纪最伟大的发明 4
1.1.2 C++发展历程 4
1.1.3 C++中的杰出人物 5
1.2 常用开发环境 6
1.2.1 Visual C++6.0 6
1.2.2 Visual C++2008 7
1.2.3 GCC/G++ 8
1.2.4 Dev-C 8
1.2.5 Eclipse 9
1.3 认知C++程序代码 9
1.4 C++工程项目文件 10
1.5 使用VC创建程序 11
1.6 编译与连接过程 14
1.7 C++的特点 17
1.8 小结 17
第2章 数据类型 19
视频讲解：1小时26分钟
2.1 第一个C++程序 20
2.1.1 #INCLUDE指令 20
2.1.2 注释 20
2.1.3main函数21
2.1.4 函数体 21
2.1.5 函数返回值 21
2.2 数据类型 21
2.3 常量及符号 22
2.3.1 整型常量 23
2.3.2 实型常量 24
2.3.3 字符常量 24
2.3.4字符串常量25
2.3.5 其他常量 26
2.4 变量 26
2.4.1 标识符 26
2.4.2 变量与变量说明 27
2.4.3 整型变量 27
2.4.4 实型变量 28
2.4.5 变量赋值 28
2.4.6 变量赋初值 29
2.4.7 字符变量 29
2.5 数据输入与输出 30
2.5.1 控制台屏幕 31
2.5.2 C++语言中的流 31
2.5.3 流操作的控制 33
2.6 小结 40
2.7 实践与练习 41
第3章 表达式与语句 43
视频讲解：55分钟
3.1 运算符 44
3.1.1算术运算符44
3.1.2关系运算符45
3.1.3逻辑运算符46
3.1.4赋值运算符47
3.1.5 位运算 48
3.1.6移位运算符50
3.1.7 sizeof运算符 52
3.1.8条件运算符52
3.1.9逗号运算符53
3.2 结合性和优先级 53
3.3 表达式 54
3.3.1算术表达式55
3.3.2关系表达式55
3.3.3条件表达式55
3.3.4 赋值表达式 56
3.3.5逻辑表达式56
3.3.6逗号表达式56
3.3.7 表达式中的类型转换 58
3.4 语句 60
3.5 小结 61
3.6 实践与练习 61
第4章 条件判断语句 63
视频讲解：35分钟
4.1 决策分支 64
4.2 判断语句 65
4.2.1 第一种形式的判断语句 65
4.2.2 第二种形式的判断语句 67
4.2.3 第三种形式的判断语句 69
4.3 使用条件运算符进行判断 70
4.4 switch语句 72
4.5 判断语句的嵌套 75
4.6 小结 77
4.7 实践与练习 77
第5章 循环语句 79
视频讲解：53分钟
5.1 while循环 80
5.2 do...while循环 82
5.3 while与do…while比较 83
5.4 for循环语句 85
5.5 循环控制 88
5.5.1 控制循环的变量 89
5.5.2break语句90
5.5.3 continue语句 91
5.5.4goto语句92
5.6 循环嵌套 93
5.7 循环应用实例 95
5.7.1 阿姆斯壮数 95
5.7.2 巴斯卡三角形 96
5.7.3 对输入的分数进行排名 97
5.8 小结 98
5.9 实践与练习 98
第6章 函数 99
视频讲解：1小时14分钟
6.1 函数概述 100
6.1.1 函数的定义 100
6.1.2 函数的声明 100
6.2 函数参数及返回值 102
6.2.1 返回值 102
6.2.2 空函数 102
6.2.3 形参与实参 103
6.2.4 默认参数 104
6.2.5 可变参数 105
6.3 函数调用 106
6.3.1 传值调用 106
6.3.2 嵌套调用 108
6.3.3 递归调用 109
6.4 变量作用域 113
6.5 重载函数 113
6.6 内联函数 115
6.7 变量的存储类别 116
6.7.1 auto变量 116
6.7.2 static变量 117
6.7.3 register变量 119
6.7.4 extern变量 119
6.8 小结 120
6.9 实践与练习 120
第7章 数组、指针和引用 121
视频讲解：1小时27分钟
7.1 一维数组 122
7.1.1 一维数组的声明 122
7.1.2 一维数组的引用 122
7.1.3 一维数组的初始化 123
7.2 二维数组 124
7.2.1 二维数组的声明 124
7.2.2 二维数组元素的引用 125
7.2.3 二维数组的初始化 126
7.3 字符数组 128
7.4 指针 135
7.4.1 变量与指针 135
7.4.2指针运算符和取地址运算符 138
7.4.3 指针运算 140
7.5 指针与数组 141
7.5.1 数组的存储 141
7.5.2 指针与一维数组 142
7.5.3 指针与二维数组 144
7.5.4 指针与字符数组 148
7.6 指向函数的指针 149
7.7 引用 150
7.7.1 使用引用传递参数 152
7.7.2 指针传递参数 153
7.7.3 数组做函数参数 154
7.8 指针数组 156
7.9 小结 159
7.10 实践与练习 159
第8章 构造数据类型 161
视频讲解：59分钟
8.1 结构体 162
8.1.1 结构体定义 162
8.1.2 结构体变量 163
8.1.3 结构体成员及初始化 163
8.1.4 结构体的嵌套 166
8.1.5 结构体大小 167
8.2 结构体与函数 169
8.2.1 结构体变量做函数参数 169
8.2.2 结构体指针做函数参数 170
8.3 结构体数组 171
8.3.1 结构体数组声明与引用 171
8.3.2 指针访问结构体数组 172
8.4 共用体 173
8.4.1 共用体的定义与声明 173
8.4.2 共用体的大小 174
8.4.3 共用体的特点 176
8.5 枚举类型 176
8.5.1 枚举类型的声明 176
8.5.2 枚举类型变量 177
8.5.3 枚举类型的运算 178
8.6 自定义数据类型 179
8.7 小结 181
8.8 实践与练习 181
第2篇 核心技术
第9章 面向对象编程 185
视频讲解：32分钟
9.1 面向对象概述 186
9.2 面向对象与面向过程编程 187
9.2.1 面向过程编程 187
9.2.2 面向对象编程 188
9.2.3 面向对象的特点 188
9.3 统一建模语言 189
9.3.1 统一建模语言概述 189
9.3.2 统一建模语言的结构 189
9.3.3 面向对象的建模 191
9.4 小结 192
第10章 类和对象 193
视频讲解：1小时1分钟
10.1 C++类 194
10.1.1 类概述 194
10.1.2 类的声明与定义 194
10.1.3 类的实现 196
10.1.4 对象的声明 200
10.2 构造函数 202
10.2.1 构造函数概述 202
10.2.2 复制构造函数 204
10.3 析构函数 206
10.4 类成员 208
10.4.1 访问类成员 208
10.4.2 内联成员函数 210
10.4.3 静态类成员 211
10.4.4 隐藏的this指针 213
10.4.5 嵌套类 214
10.4.6 局部类 215
10.5 友元 216
10.5.1 友元概述 216
10.5.2 友元类 218
10.5.3 友元方法 219
10.6 命名空间 222
10.6.1 使用命名空间 222
10.6.2 定义命名空间 222
10.6.3 在多个文件中定义命名空间 225
10.6.4 定义嵌套的命名空间 226
10.6.5 定义未命名的命名空间 228
10.7 小结 228
10.8 实践与练习 229
第11章 继承与派生 231
视频讲解：57分钟
11.1 继承 232
11.1.1 类的继承 232
11.1.2 继承后可访问性 234
11.1.3 构造函数访问顺序 237
11.1.4 子类隐藏父类的成员函数 238
11.2 重载运算符 241
11.2.1 重载运算符的必要性 241
11.2.2 重载运算符的形式与规则 243
11.2.3 重载运算符的运算 244
11.2.4 转换运算符 247
11.3 多重继承 248
11.3.1 多重继承定义 248
11.3.2 二义性 250
11.3.3 多重继承的构造顺序 250
11.4 多态 252
11.4.1 虚函数概述 252
11.4.2 利用虚函数实现动态绑定 253
11.4.3 虚继承 254
11.5 抽象类 256
11.5.1 纯虚函数 256
11.5.2 实现抽象类中的成员函数 258
11.6 小结 260
11.7 实践与练习 260
第3篇 高级应用
第12章 模板 263
视频讲解：49分钟
12.1 函数模板 264
12.1.1 函数模板的定义 264
12.1.2 函数模板的作用 265
12.1.3 重载函数模板 267
12.2 类模板 268
12.2.1 类模板的定义与声明 268
12.2.2 简单类模板 270
12.2.3 默认模板参数 271
12.2.4 为具体类型的参数提供默认值 272
12.2.5 有界数组模板 273
12.3 模板的使用 275
12.3.1 定制类模板 275
12.3.2 定制类模板成员函数 276
12.3.3 模板部分定制 278
12.4 链表类模板 279
12.4.1 链表 280
12.4.2 链表类模板 282
12.4.3 类模板的静态数据成员 284
12.5 小结 286
12.6 实践与练习 286
第13章 STL标准模板库 287
视频讲解：35分钟
13.1 序列容器 288
13.1.1 向量类模板 288
13.1.2 双端队列类模板 290
13.1.3 链表类模板 292
13.2 结合容器 294
13.2.1 set类模板 295
13.2.2 multiset类模板 299
13.2.3 map类模板 304
13.2.4 multimap类模板 306
13.3 算法 307
13.3.1 非修正序列算法 307
13.3.2 修正序列算法 310
13.3.3 排序算法 314
13.3.4 数值算法 321
13.4 迭代器 325
13.4.1 输出迭代器 325
13.4.2 输入迭代器 326
13.4.3 前向迭代器 327
13.4.4 双向迭代器 328
13.4.5 随机访问迭代器 329
13.5 小结 330
13.6 实践与练习 330
第14章 RTTI与异常处理 331
视频讲解：22分钟
14.1 RTTI（运行时类型识别） 332
14.1.1 什么是RTTI 332
14.1.2 RTTI与引用 333
14.1.3 RTTI与多重继承 334
14.1.4 RTTI映射语法 335
14.2 异常处理 337
14.2.1 抛出异常 338
14.2.2 异常捕获 340
14.2.3 异常匹配 342
14.2.4 标准异常 344
14.3 小结 345
第15章 程序调试 347
视频讲解：33分钟
15.1 选择正确的调试方法 348
15.2 程序错误常见的4种类型 348
15.2.1 语法错误 348
15.2.2 连接错误 349
15.2.3 运行时错误 349
15.2.4 逻辑错误 350
15.3 调试工具的使用 351
15.3.1 创建调试程序 351
15.3.2 进入调试状态 353
15.3.3 Watch窗口 353
15.3.4 Call Stack窗口 353
15.3.5 Memory窗口 354
15.3.6 Variables窗口 354
15.3.7 Registers窗口 355
15.3.8 Disassembly窗口 355
15.4 调试的基本应用 355
15.4.1 变量的跟踪与查看 355
15.4.2 位置断点的使用 357
15.4.3 数据断点的使用 359
15.5 调试的高级应用 360
15.5.1 在调试时修改变量的值 360
15.5.2 在循环中调试 361
15.6 小结 362
第16章 文件操作 363
视频讲解：58分钟
16.1 文件流 364
16.1.1 C++中的流类库 364
16.1.2 类库的使用 364
16.1.3 ios类中的枚举常量 365
16.1.4 流的输入/输出 365
16.2 文件打开 366
16.2.1 打开方式 366
16.2.2 默认打开模式 367
16.2.3 打开文件同时创建文件 368
16.3 文件的读写 369
16.3.1 文件流 369
16.3.2 写文本文件 371
16.3.3 读取文本文件 371
16.3.4 二进制文件的读写 372
16.3.5 实现文件复制 374
16.4 文件指针移动操作 375
16.4.1 文件错误与状态 375
16.4.2 文件的追加 375
16.4.3 文件结尾的判断 376
16.4.4 在指定位置读写文件 378
16.5 文件和流的关联和分离 379
16.6 删除文件 381
16.7 小结 382
16.8 实践与练习 382
第17章 网络通信 383
视频讲解：39分钟
17.1TCP/IP协议384
17.1.1OSI参考模型384
17.1.2TCP/IP参考模型384
17.1.3 IP地址 385
17.1.4 数据包格式 386
17.2 套接字 388
17.2.1 Winsocket套接字 388
17.2.2 Winsocket的使用 388
17.2.3 套接字阻塞模式 393
17.2.4 字节顺序 393
17.2.5 面向连接流 394
17.2.6 面向无连接流 395
17.3 简单协议通信 395
17.3.1 服务端 395
17.3.2 客户端 398
17.3.3 实例的运行 399
17.4 小结 399
17.5 实践与练习 399
第4篇 项目实战
第18章 图书管理系统 403
视频讲解：42分钟
18.1 系统设计 404
18.1.1 需求分析 404
18.1.2 系统目标 404
18.1.3 系统功能结构 404
18.2 图书类 405
18.3 主程序 409
18.4 添加图书 413
18.5 显示图书信息 414
18.6 删除图书 416
18.7 小结 417