书籍 白话C++之练功的封面

白话C++之练功PDF电子书下载

庄严编著

购买点数

23

出版社

北京:北京航空航天大学出版社

出版时间

2019

ISBN

标注页数

881 页

PDF页数

905 页

图书目录

第1章 启蒙 1

1.1 开始 1

1.2 什么是计算机 4

1.2.1 “冯·诺依曼”版 4

1.2.2 “白话C+++”版 5

1.3 什么是硬件、软件 6

1.4 什么是程序 7

1.4.1 什么是指令 7

1.4.2 指令兼容 8

1.4.3 程序=指令的逻辑组合 8

1.4.4 程序vs软件 9

1.5 什么是编程语言 9

1.5.1 机器语言 10

1.5.2 机器语言的“字母” 10

1.5.3 二进制(基础) 11

1.5.4 汇编语言 11

1.5.5 高级语言 12

1.5.6 编程思维 13

1.5.7 从C到C+++ 14

1.6 什么是IDE 15

1.7 你是程序员 17

1.8 出发赠言 19

第2章 准备 20

2.1 基础知识 20

2.1.1 开源协议 20

2.1.2 “库”是什么 20

2.1.3 “库”长什么样子 21

2.1.4 学习哪些“库” 22

2.1.5 准备安装目录 22

2.1.6 更多支持 22

2.2 安装IDE——Code::Blocks 23

2.2.1 检查MinGW环境 23

2.2.2 安装Code::Blocks 23

2.2.3 升级Code::Blocks 24

2.2.4 安装MinGW-w64 24

2.2.5 试运行 25

2.2.6 配置IDE 26

2.3 系统编译环境变量 29

2.4 安装wxWidgets 30

2.4.1 下载 31

2.4.2 编译 31

2.4.3 检查 32

2.5 安装boost 33

2.5.1 下载 33

2.5.2 辅助工具 34

2.5.3 编译 34

2.5.4 检查 35

2.6 安装MySQL 35

2.6.1 搞清楚“位数” 36

2.6.2 安装MySQL 37

2.6.3 安装MySQL管理客户端 38

2.6.4 安装MySQL 32位C语言客户端库 39

2.7 安装MySQL++ 39

2.7.1 辅助工具 39

2.7.2 下载 39

2.7.3 编译 39

2.7.4 安装 40

2.8 配置Code::Blocks全局变量 41

2.8.1 新建全局变量集:d2school 42

2.8.2 全局路径变量wx 42

2.8.3 全局路径变量boost 43

2.8.4 全局路径变量mysql 44

2.8.5 全局路径变量mysqlpp 44

第3章 感受(一) 45

3.1 Hello world经典版 45

3.1.1 向导-控制台项目 45

3.1.2 初识代码 47

3.1.3 头文件 48

3.1.4 标准输出cout 50

3.1.5 名字空间 51

3.1.6 函数 52

3.1.7 主函数 54

3.1.8 注释 55

3.2 Hello world中文版 56

3.2.1 “字符集”和“编码” 56

3.2.2 问题与解决 56

3.3 Hello world函数版 58

3.3.1 定义函数 58

3.3.2 调用函数 58

3.3.3 重复调用 59

3.3.4 带参函数 59

3.4 Hello world交互版 61

3.4.1 变量 61

3.4.2 常量 63

3.4.3 数据类型 63

3.4.4 定义变量 64

3.4.5 完成交互 64

3.5 Hello world分支版 65

3.5.1 流程控制if-else 66

3.5.2 修改Hello函数——区别对待 66

3.5.3 多级if-else 67

3.5.4 常见关系、逻辑操作符 67

3.6 Hello world循环版 68

3.6.1 流程控制while 68

3.6.2 修改main函数——反复操作 69

3.7 Hello Object生死版 70

3.7.1 定义对象类型 71

3.7.2 创建对象 72

3.7.3 构造函数 73

3.7.4 析构函数 74

3.7.5 对象生命周期 74

3.7.6 对象与内存 78

3.7.7 对象可见区域 80

3.8 Hello Object成员版 81

3.8.1 成员数据 84

3.8.2 成员函数 85

3.9 Hello Object派生版 86

3.9.1 使用分支 86

3.9.2 为何派生 87

3.9.3 如何派生 88

3.9.4 定义“美人类” 88

3.9.5 使用“美人类” 89

3.9.6 变和不变 89

3.9.7 派生类的生死过程 90

3.10 Hello Object多态版 92

3.10.1 虚函数 93

3.10.2 虚“析构函数” 95

3.10.3 应用虚函数 96

3.10.4 多态vs.非多态 99

3.11 Hello Object封装版 99

3.11.1 什么是封装 99

3.11.2 类型即封装 101

3.11.3 公开、保护、私有 102

3.11.4 class vs struct 104

3.11.5 封装应用示例 105

3.11.6 常量成员函数 109

3.12 Hello STL向量篇 110

3.12.1 基础 111

3.12.2 常用接口 112

3.12.3 遍历 113

3.12.4 实例:选美大赛管理系统 115

3.13 Hello STL链表篇 123

3.13.1 基础 124

3.13.2 迭代器/iterator概念 124

3.13.3 常用函数1 126

3.13.4 常用函数2 128

3.13.5 常量迭代器 130

3.13.6 遍历list容器 131

3.13.7 实例:成绩管理系统1 132

3.14 Hello STL算法篇 137

3.14.1 函数对象 139

3.14.2 自定义查找算法 141

3.14.3 泛化查找算法 143

3.14.4 标准库查找算法 146

3.14.5 标准库排序算法 147

3.14.6 实例:成绩管理系统2 148

3.15 Hello STL文件篇 160

3.15.1 写文件 161

3.15.2 读文件 163

3.15.3 带格式读取 164

3.15.4 实例:成绩管理系统3 165

第4章 感受(二) 170

4.1 Hello GUI基础篇 170

4.1.1 C::B文件默认编码 170

4.1.2 wxWidgets项目向导 171

4.1.3 界面设计 172

4.1.4 编译运行 174

4.1.5 发布程序 174

4.2 Hello GUI布局篇 175

4.2.1 wxSmith基础 175

4.2.2 wxBoxSizer基础 179

4.2.3 布局修改实例 180

4.2.4 挂接事件 183

4.3 Hello Internet 184

4.3.1 创建项目 185

4.3.2 界面设计 185

4.3.3 编写代码 186

4.4 Hello Database 188

4.4.1 基本需求 189

4.4.2 准备数据 189

4.4.3 创建工程 190

4.4.4 编写代码 192

第5章 基础 198

5.1 从代码到程序 198

5.1.1 编译机制 198

5.1.2 解释机制 200

5.1.3 虚拟机机制 201

5.2 构建C++程序 202

5.2.1 预编译 202

5.2.2 编译 205

5.2.3 链接 206

5.2.4 手工构建 208

5.3 项目/Project 209

5.3.1 项目文件 209

5.3.2 源文件、头文件 210

5.3.3 使用头文件 211

5.3.4 库文件 215

5.4 进程与内存 216

5.4.1 什么叫进程 217

5.4.2 进程的内存空间 217

5.4.3 内存分配测试程序 218

5.5 内存分段 220

5.5.1 代码段 221

5.5.2 数据段和“全局数据” 221

5.5.3 栈内存 223

5.5.4 堆内存 224

5.6 CPU、寄存器 225

5.7 线程 227

5.8 数据与内存 230

5.8.1 地址、尺寸、值、类型 230

5.8.2 取址、取尺寸、取值、取类型 233

5.8.3 指针——装着地址的变量 235

5.8.4 堆数据与内存 237

5.8.5 数组数据 239

5.8.6 堆数组与内存 240

5.8.7 常量与内存 245

5.8.8 二维数组与内存 247

5.8.9 数组综合练习 248

5.8.10 声明、定义、实现 251

5.9 进制(一) 258

5.9.1 初识二进制 258

5.9.2 正整数和零 259

5.9.3 负整数(原码、反码、补码) 259

5.9.4 无符号数vs有符号数 262

5.10 进制(二) 263

5.10.1 十六进制 263

5.10.2 八进制 265

5.10.3 进制换算 266

5.10.4 浮点数 267

第6章 IDE——Code::Blocks 271

6.1 窗口布局 271

6.1.1 边栏 271

6.1.2 工具栏 272

6.1.3 布局保存 273

6.2 环境设置 273

6.2.1 常规设置/General Settings 273

6.2.2 视图/View 274

6.2.3 多页面板/Notebooks appearance 274

6.2.4 禁用的对话框/Disabled dialogs 275

6.2.5 内置游戏/C::B Games 275

6.2.6 自动保存/Autosave 275

6.2.7 环境变量/Environment variables 276

6.2.8 头文件自动引入/Header-Fixup configuration 276

6.2.9 帮助文件/Help files 277

6.2.10 待办事件/Todo list 278

6.3 编辑器设置 279

6.3.1 常规设置/General Settings 279

6.3.2 代码折叠/Folding 282

6.3.3 边界和光标符/Margins and caret 282

6.3.4 语法高亮/Syntax highlighting 282

6.3.5 简写词/Abbreviations 282

6.3.6 代码格式化工具/Source formatter 283

6.3.7 代码完成/Code completion 284

6.3.8 快捷键/Keyboard shortcuts 284

6.3.9 拼写检查/Spell Checker 287

6.3.10 wxSmith配置 287

6.4 编译器全局设置 287

6.4.1 编译器选项/Compiler settings 288

6.4.2 其他设置/Other settings 288

6.4.3 构建配置/Build options 288

6.5 调试器全局设置 288

6.6 全局路径变量 289

6.7 项目管理 290

6.7.1 项目组织 290

6.7.2 项目向导 292

6.7.3 项目文件 293

6.8 项目构建选项 294

6.8.1 公共配置和目标配置 294

6.8.2 项目编译器设置/Compiler Settings 295

6.8.3 项目链接器设置/Linker settings 296

6.8.4 项目搜索路径/Search directories 298

6.8.5 项目构建附加步骤/Pre-post build steps 300

6.8.6 项目定制变量/Custom variables 300

6.9 项目属性 300

6.9.1 项目设置/Project settings 300

6.9.2 构建目标/Build targets 301

6.10 项目实践 303

6.10.1 构建动态库 303

6.10.2 构建静态库 304

6.10.3 主项目-可执行程序 305

6.10.4 配置依赖库 305

6.10.5 设置项目间依赖关系 306

6.11 调试 307

6.11.1 启动调试 307

6.11.2 设置断点 308

6.11.3 单步运行 309

6.11.4 观察数据 309

6.11.5 单步进入 310

6.11.6 单步跳出 311

6.11.7 其他步进指令 311

6.11.8 定位错误 311

6.11.9 中止调试 312

第7章 语言 313

7.1 字面量 313

7.1.1 整数字面量 314

7.1.2 浮点数字面量 315

7.1.3 空指针字面量 315

7.1.4 布尔值字面量 316

7.1.5 字符字面量 317

7.1.6 字符串字面量 322

7.1.7 枚举字面量 323

7.1.8 宏替换 325

7.1.9 自定义字面量 326

7.2 类型 327

7.2.1 基本概念 327

7.2.2 整型 329

7.2.3 浮点型 330

7.2.4 字符类型 331

7.2.5 布尔类型 332

7.2.6 空类型 333

7.2.7 类/结构 334

7.2.8 枚举类型 338

7.2.9 类型别名 344

7.3 类型基础行为 345

7.3.1 定义 345

7.3.2 初始化行为 348

7.3.3 初始化类成员 356

7.3.4 复制构造行为 361

7.3.5 赋值行为 366

7.3.6 转换行为 371

7.3.7 转移行为 380

7.3.8 析构行为 384

7.4 变量和常量 385

7.4.1 变或不变 385

7.4.2 常量成员数据 386

7.4.3 常量成员函数 387

7.5 引用 388

7.5.1 定义引用 390

7.5.2 常量引用 392

7.5.3 引用传递 393

7.5.4 右值引用 395

7.6 指针 401

7.6.1 定义指针 401

7.6.2 初始化指针 401

7.6.3 取值与成员访问 403

7.6.4 释放指针 404

7.6.5 常量指针 406

7.6.6 指针的指针 408

7.7 数组 409

7.7.1 初始化数组 410

7.7.2 常量数组 410

7.7.3 数组间复制数据 411

7.7.4 数组退化 411

7.7.5 字符数组和字符串 413

7.7.6 多维数组 415

7.7.7 指针和数组 417

7.7.8 数组类型的别名 420

7.8 STL常用类型 420

7.8.1 std::string/wstring 422

7.8.2 std::list 424

7.8.3 std::vector 426

7.8.4 std::array 430

7.8.5 std::map 433

7.8.6 std::ofstream 437

7.8.7 std::ifstream 439

7.8.8 std::stringstream 441

7.8.9 智能指针 442

7.9 生存期、作用域、可见性、访问限定 451

7.9.1 基本概念 451

7.9.2 声明 453

7.9.3 名字空间 455

7.9.4 类型定义作用域 469

7.10 函数 477

7.10.1 函数作用域 477

7.10.2 自由函数、成员函数 478

7.10.3 函数声明与定义 478

7.10.4 函数入参 479

7.10.5 函数返回值 489

7.10.6 函数静态数据 503

7.10.7 递归调用 504

7.10.8 函数重载 505

7.10.9 操作符重载 509

7.10.10 内联函数 512

7.10.11 主函数 514

7.10.12 函数指针 515

7.11 Lambda函数 519

7.11.1 基本概念 519

7.11.2 入参与返回 522

7.11.3 捕获/capture 523

7.12 操作符与表达式 527

7.12.1 算术操作 528

7.12.2 基础操作 529

7.12.3 关系操作 530

7.12.4 逻辑操作 531

7.12.5 位操作 533

7.12.6 自运算 536

7.12.7 逗号操作符 538

7.12.8 取址、取值 539

7.12.9 成员访问 540

7.12.10 指针偏移计算 540

7.12.11 数组运算 543

7.13 语句与流程 544

7.13.1 简单语句 544

7.13.2 复合语句 544

7.13.3 if 545

7.13.4 switch 549

7.13.5 while 553

7.13.6 do-while 556

7.13.7 for 562

7.13.8 break/continue 567

7.13.9 goto 569

7.13.10 综合练习 570

7.14 模板 580

7.14.1 基本概念 580

7.14.2 函数模板 581

7.14.3 显式指定模板参数 582

7.14.4 函数模板示例 583

7.14.5 类模板 585

7.14.6 成员函数模板 587

7.14.7 标准库函数模板示例 588

7.14.8 模板代码编译 591

7.15 异常 593

7.15.1 斧头帮的异常 594

7.15.2 错误VS异常 594

7.15.3 基本语法 599

7.15.4 示例:斧头帮行动异常版 601

7.15.5 异常再抛出 603

7.15.6 捕获任意类型异常 606

7.15.7 函数异常规格 607

7.15.8 函数自我捕获异常 608

7.15.9 构建异常“家族” 610

7.15.10 标准库异常类 613

7.16 并行流程 615

7.16.1 多线程 615

7.16.2 线程同步-互斥体 619

7.16.3 规避死锁 622

7.16.4 使用守护锁 623

7.16.5 实例:并行累加5千万个数 624

第8章 面向对象 634

8.1 抽象 634

8.1.1 概念 635

8.1.2 难点 637

8.1.3 要素 639

8.2 封装 643

8.2.1 不变式 645

8.2.2 原则 647

8.2.3 “不变式”实例 649

8.2.4 从关系到状态 655

8.2.5 类型即封装 656

8.2.6 类型默认行为 658

8.2.7 this指针 660

8.2.8 访问控制 664

8.2.9 冗余保护 664

8.2.10 构造与资源初始化 666

8.2.11 析构与资源释放 673

8.2.12 复制行为定制 675

8.2.13 特定行为定制 680

8.2.14 定制类型转换 686

8.2.15 转移操作 689

8.2.16 静态成员 689

8.2.17 常量成员 693

8.2.18 嵌套类 694

8.2.19 友元 696

8.2.20 回归C的封装 702

8.2.21 进阶思考 709

8.3 派生 735

8.3.1 语法基础 738

8.3.2 受保护的 741

8.3.3 派生方式 744

8.3.4 派生类的构造 746

8.3.5 派生类的析构 750

8.3.6 多重派生 751

8.3.7 派生类与作用域 755

8.4 基于对象例程 759

8.4.1 INI文件简介 760

8.4.2 面向过程的设计 761

8.4.3 基于对象的设计 767

8.4.4 复用实现的派生 775

8.5 多态 779

8.5.1 “什么”和“为什么” 779

8.5.2 接口约定 782

8.5.3 虚函数 785

8.5.4 “多态”实例 786

8.6 OO设计原则 792

8.6.1 is-a关系 792

8.6.2 抽象、抽象、再抽象 795

8.6.3 高内聚低耦合 797

8.6.4 明确数据边界 800

8.6.5 强化数据不变性 803

8.6.6 层次与模块 808

8.6.7 框架型基类 809

8.7 综合练习 815

8.7.1 工资发放练习 815

8.7.2 射击游戏的需求 815

8.7.3 小小进销存的需求 817

第9章 泛型 820

9.1 泛型概念 820

9.2 基础回顾 820

9.2.1 函数模板 820

9.2.2 类模板 822

9.2.3 成员函数模板 823

9.3 模板实例化 825

9.3.1 只帮一次忙 825

9.3.2 潜在匹配条件 828

9.3.3 显式指定类型 829

9.3.4 类模板实例化 831

9.3.5 模板内符号身份确定 832

9.3.6 非类型模板参数 835

9.3.7 模板参数默认值 838

9.4 泛型应用实例 838

9.4.1 C-Style类型转换模板 838

9.4.2 Pair 839

9.4.3 AutoPtr 842

9.4.4 RangeArray 849

9.4.5 链表结构 856

9.5 泛型特化 872

9.5.1 函数模板特化 872

9.5.2 类模板特化基础 876

9.5.3 局部特化的花样 878

9.5.4 全特化 880

参考文献 881

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包