首页 > 图书中心 > C++从入门到精通(第6版)

目录

第1篇 基础知识

第1章 绪论 2

视频讲解:32分钟

1.1 认识C++ 2

1.1.1 C++的发展历程 2

1.1.2 C/C++领域的杰出人物 3

1.1.3 C++语言的特点 4

1.2 认识C++程序代码 5

1.2.1 C++程序代码的组成 5

1.2.2 从源代码到可执行程序 5

1.3 C++常用开发环境 6

1.4 C++工程项目文件 8

1.5 使用Dev C++创建程序 8

第2章 数据类型 11

视频讲解:162分钟

2.1 第一个C++程序 11

2.2 关键字和标识符 13

2.3 基本数据类型 13

2.4 常量 14

2.4.1 整型常量 14

2.4.2 浮点型常量 15

2.4.3 字符常量 15

2.4.4 字符串常量 16

2.4.5 其他常量 16

2.5 变量 17

2.5.1 变量的声明和定义 17

2.5.2 整型变量 17

2.5.3 浮点型变量 18

2.5.4 变量赋值 20

2.5.5 字符型变量 20

2.6 数据的输入与输出 21

2.6.1 C++中的流 21

2.6.2 格式化输出 23

2.7 实践与练习 29

第3章 运算符与表达式 30

视频讲解:119分钟

3.1 表达式 30

3.2 赋值运算符和赋值表达式 31

3.3 算术运算符和算术表达式 31

3.3.1 算术运算符 31

3.3.2 算术表达式 32

3.3.3 自增、自减运算符 32

3.4 关系运算符和关系表达式 33

3.4.1 关系运算符 33

3.4.2 关系表达式 33

3.5 逻辑运算符和逻辑表达式 34

3.5.1 逻辑运算符 34

3.5.2 逻辑表达式 35

3.6 逗号运算符和逗号表达式 36

3.7 位运算符 36

3.8 移位运算符 37

3.9 复合赋值运算符 40

3.10 sizeof运算符 40

3.11 运算符的优先级和结合性 41

3.12 数据类型转换 42

3.12.1 隐式类型转换 42

3.12.2 强制类型转换 43

3.13 判断左值与右值 44

3.14 实践与练习 45

第4章 条件判断语句 46

视频讲解:102分钟

4.1 语句、程序结构和流程图 46

4.1.1 语句 46

4.1.2 程序结构 47

4.1.3 流程图 47

4.2 if语句 48

4.2.1 简单if语句 48

4.2.2 if…else语句 49

4.2.3 else if语句 50

4.3 if语句的嵌套 52

4.4 条件运算符 54

4.5 switch语句 55

4.6 实践与练习 58

第5章 循环语句 60

视频讲解:85分钟

5.1 while循环 60

5.2 do...while循环 62

5.3 for循环 63

5.4 循环控制 66

5.4.1 循环控制变量 66

5.4.2 break语句 66

5.4.3 continue语句 67

5.4.4 goto语句 68

5.5 循环嵌套 69

5.6 实践与练习 72

第6章 函数 74

视频讲解:203分钟

6.1 函数的定义和声明 74

6.1.1 函数的定义 74

6.1.2 函数的声明 75

6.2 函数的参数及返回值 76

6.2.1 函数的形参与实参 76

6.2.2 函数的调用与返回值 76

6.2.3 空函数 78

6.2.4 默认参数 79

6.3 嵌套调用与递归调用 80

6.3.1 嵌套调用 80

6.3.2 递归调用 80

6.4 变量的作用域 84

6.5 函数重载 85

6.6 内联函数 86

6.7 变量的存储类型 87

6.7.1 auto变量 87

6.7.2 static变量 88

6.7.3 register变量 89

6.7.4 extern变量 89

6.8 实践与练习 90

第7章 数组、指针和引用 92

视频讲解:245分钟

7.1 一维数组 92

7.1.1 一维数组的声明 92

7.1.2 一维数组元素的引用 93

7.1.3 一维数组的初始化 93

7.2 二维数组 95

7.2.1 二维数组的声明 95

7.2.2 二维数组元素的引用 95

7.2.3 二维数组的初始化 96

7.3 字符数组 97

7.3.1 字符数组的声明与初始化 98

7.3.2 字符串 98

7.3.3 字符串连接函数strcat() 100

7.3.4 字符串复制函数strcpy() 101

7.3.5 字符串比较函数strcmp() 102

7.3.6 字符串长度函数strlen() 103

7.4 指针 103

7.4.1 变量、地址与指针 103

7.4.2 指针变量 104

7.4.3 指针运算符和取地址运算符 107

7.4.4 指针的自增、自减运算 108

7.4.5 指向空的指针与空类型指针 109

7.4.6 指向常量的指针与指针常量 110

7.5 指针与数组 111

7.5.1 数组的存储方式 111

7.5.2 指针与一维数组 111

7.5.3 指针与二维数组 113

7.5.4 指针与字符数组 114

7.5.5 基于指针的字符串处理函数 115

7.6 指针在函数中的应用 119

7.6.1 传递地址 119

7.6.2 指向函数的指针 120

7.6.3 空指针调用函数 121

7.6.4 函数返回值为指针 121

7.7 指针数组 122

7.8 安全使用指针 124

7.8.1 内存分配 124

7.8.2 内存安全 126

7.9 引用 129

7.9.1 引用概述 129

7.9.2 使用引用传递函数参数 131

7.10 数组做函数参数 132

7.11 实践与练习 134

第8章 构造数据类型 136

视频讲解:96分钟

8.1 结构体 136

8.1.1 结构体的定义 136

8.1.2 结构体变量的声明和初始化 137

8.1.3 结构体成员的引用 138

8.1.4 结构体的嵌套 139

8.1.5 结构体的大小 141

8.2 结构体与函数 141

8.2.1 结构体变量做函数参数 142

8.2.2 结构体指针做函数参数 142

8.3 结构体数组 143

8.3.1 结构体数组的声明和初始化 143

8.3.2 指针访问结构体数组 144

8.4 共用体 145

8.4.1 共用体的定义和使用 145

8.4.2 共用体的大小 146

8.4.3 共用体的特点 147

8.5 枚举类型 147

8.5.1 枚举类型的定义 147

8.5.2 枚举变量 148

8.5.3 枚举类型的运算 149

8.6 自定义数据类型 150

8.7 使用宏定义替换复杂的数据 151

8.8 实践与练习 155

第2篇 面向对象

第9章 面向对象编程 158

视频讲解:39分钟

9.1 面向对象概述 158

9.1.1 对象 158

9.1.2 类 158

9.1.3 封装 159

9.1.4 继承 159

9.1.5 多态 159

9.2 面向对象编程与面向过程编程 160

9.2.1 面向过程编程 160

9.2.2 面向对象编程 160

9.3 统一建模语言 161

9.3.1 UML概述 161

9.3.2 UML的结构 162

9.3.3 面向对象的建模 164

第10章 类和对象 165

视频讲解:197分钟

10.1 C++类 165

10.1.1 类的声明与定义 166

10.1.2 类的实现 166

10.1.3 对象的声明和引用 169

10.2 构造函数 171

10.2.1 构造函数概述 171

10.2.2 复制构造函数 171

10.3 析构函数 173

10.4 类成员 174

10.4.1 访问类成员 174

10.4.2 内联成员函数 176

10.4.3 静态类成员 176

10.4.4 隐藏的this指针 178

10.4.5 嵌套类 179

10.4.6 局部类 180

10.5 友元 180

10.5.1 友元概述 180

10.5.2 友元类 182

10.5.3 友元函数 183

10.6 命名空间 185

10.6.1 定义命名空间 185

10.6.2 在多个文件中定义命名空间 187

10.6.3 定义嵌套的命名空间 188

10.7 实践与练习 189

第11章 继承与派生 190

视频讲解:112分钟

11.1 继承 190

11.1.1 类的继承 190

11.1.2 继承后的可访问性 192

11.1.3 构造函数的访问顺序 194

11.1.4 派生类中显式调用基类构造函数 195

11.1.5 派生类屏蔽基类的同名成员函数 196

11.2 重载运算符 197

11.2.1 为什么要重载运算符 197

11.2.2 重载运算符的形式与规则 199

11.2.3 重载运算符的运算 200

11.2.4 转换运算符 202

11.3 多重继承 203

11.3.1 多重继承的定义 203

11.3.2 多重继承的构造顺序 204

11.4 多态 206

11.4.1 虚函数概述 206

11.4.2 利用虚函数实现动态绑定 206

11.4.3 虚继承 208

11.5 抽象类 209

11.5.1 纯虚函数和抽象类 209

11.5.2 实现抽象类中的成员函数 211

11.6 实践与练习 213

第3篇 高级应用

第12章 模板 216

视频讲解:32分钟

12.1 C++泛型编程和模板 216

12.1.1 认识C++泛型编程 216

12.1.2 强类型语言与C++模板 217

12.2 函数模板 218

12.2.1 函数模板的定义 218

12.2.2 函数模板的使用 219

12.2.3 重载函数模板 220

12.3 类模板 221

12.3.1 类模板的定义与声明 221

12.3.2 简单类模板 223

12.3.3 默认模板参数 223

12.3.4 为具体类型的参数提供默认值 224

12.3.5 有界数组模板 225

12.3.6 类模板的定制 226

12.4 链表类模板 229

12.4.1 链表的基本概念 229

12.4.2 设计单链表 230

12.4.3 链表类模板的使用 231

12.4.4 类模板的静态数据成员 233

12.5 实践与练习 235

第13章 标准模板库 236

视频讲解:166分钟

13.1 C++ STL基础 236

13.1.1 认识STL 237

13.1.2 常见的数据结构 237

13.2 STL容器与迭代器 240

13.2.1 STL容器 240

13.2.2 STL迭代器 241

13.2.3 STL容器通用操作 243

13.3 序列式容器 243

13.3.1 序列式容器概述 243

13.3.2 array容器 244

13.3.3 vector容器 245

13.3.4 deque容器 248

13.3.5 list容器 250

13.3.6 forward_list容器 253

13.4 字符串容器 254

13.4.1 字符串容器概述 254

13.4.2 字符串容器常用函数 254

13.4.3 转换为C语言风格的字符串 257

13.5 关联式容器 257

13.5.1 关联式容器概述 257

13.5.2 pair类模板 258

13.5.3 map容器 260

13.5.4 multimap容器 262

13.5.5 set容器 263

13.5.6 multiset容器 266

13.6 算法 267

13.6.1 非修正序列算法 267

13.6.2 修正序列算法 269

13.6.3 排序算法 272

13.6.4 数值算法 275

13.7 实践与练习 279

第14章 RTTI与异常处理 280

视频讲解:18分钟

14.1 RTTI 280

14.1.1 RTTI的定义 280

14.1.2 RTTI与引用 281

14.1.3 RTTI与多重继承 282

14.1.4 RTTI映射语法 283

14.2 异常处理 285

14.2.1 抛出异常 285

14.2.2 捕获异常 285

14.2.3 异常匹配 287

14.2.4 标准异常类 288

第15章 程序调试 290

视频讲解:21分钟

15.1 程序错误的常见类型 290

15.2 调试工具的使用 292

15.2.1 创建调试程序 292

15.2.2 进入调试状态 292

15.2.3 进行调试 293

15.2.4 变量的跟踪与查看 294

15.2.5 调试的注意事项 295

第16章 文件操作 296

视频讲解:35分钟

16.1 C++输入/输出流 296

16.1.1 C++中的流类库 296

16.1.2 ios类中的枚举常量 297

16.1.3 流的输入/输出 298

16.2 打开文件 299

16.3 读写文件 301

16.3.1 文件流 301

16.3.2 写入文本文件 303

16.3.3 读取文本文件 303

16.3.4 读写二进制文件 304

16.3.5 复制文件 305

16.4 文件指针的移动 306

16.4.1 文件错误与状态 306

16.4.2 向文件中追加写入 307

16.4.3 文件结尾的判断 308

16.4.4 在指定位置读写文件 309

16.5 文件和流的关联和分离 310

16.6 删除文件 311

16.7 实践与练习 312

第17章 网络通信 313

视频讲解:20分钟

17.1 TCP/IP协议 313

17.1.1 OSI参考模型 313

17.1.2 TCP/IP参考模型 314

17.1.3 IP地址 315

17.1.4 数据包格式 315

17.2 套接字 317

17.2.1 Winsock套接字 317

17.2.2 Winsock的使用 318

17.2.3 套接字阻塞模式 322

17.2.4 字节顺序 322

17.2.5 面向连接流 323

17.2.6 面向无连接流 323

17.3 简单协议通信 324

17.3.1 服务器端程序 324

17.3.2 客户端程序 326

17.4 实践与练习 328

第4篇 项目实战

第18章 酒店客房管理系统 330

视频讲解:30分钟

18.1 开发背景 330

18.2 系统设计 331

18.2.1 系统功能结构 331

18.2.2 业务流程图 331

18.2.3 系统预览 332

18.2.4 数据库设计 333

18.3 主窗体设计 334

18.4 登录模块设计 339

18.4.1 登录模块技术分析 339

18.4.2 登录模块设计过程 340

18.5 客房预订模块设计 344

18.5.1 客房预订模块技术分析 344

18.5.2 客房预订模块实现过程 344

18.6 追加押金模块设计 348

18.6.1 追加押金模块技术分析 348

18.6.2 追加押金模块实现过程 349

18.7 调房登记模块设计 353

18.7.1 调房登记模块技术分析 353

18.7.2 调房登记模块实现过程 353

18.8 客房销售报表模块设计 358

18.8.1 客房销售报表模块技术分析 358

18.8.2 客房销售报表模块实现过程 358

18.9 项目文件清单 365

第19章 制作游戏外挂——植物大战僵尸修改器 366

视频讲解:6分钟

19.1 开发背景 366

19.2 系统功能设计 367

19.2.1 系统功能结构 367

19.2.2 业务流程图 367

19.3 系统开发环境要求 368

19.4 修改器原理介绍 368

19.5 项目目录结构预览 370

19.6 修改器界面开发 371

19.6.1 新建项目 371

19.6.2 去除多余控件 372

19.6.3 完成修改器主界面 373

19.6.4 添加“进程列表”对话框 374

19.7 修改阳光数量(内存搜索功能) 375

19.7.1 列出所有进程 375

19.7.2 打开游戏进程 376

19.7.3 搜索阳光数量位置 376

19.7.4 修改阳光数量 378

19.7.5 使用方法 378

19.8 注入游戏中的动态链接库(DLL) 382

19.8.1 创建DLL项目 382

19.8.2 修改器界面介绍 384

19.8.3 注入DLL到游戏进程 384

19.9 修改器核心功能实现 385

19.9.1 按HOME键调出游戏修改器 386

19.9.2 任意修改阳光、金钱数量 387

19.9.3 调用种植、铲除植物功能 388

19.9.4 自动收集阳光和金钱 389

19.9.5 僵尸全部出动 390

19.9.6 忽略地形,重叠种植 391

19.9.7 植物种植无冷却时间 392

19.10 开发总结 393

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘