图书介绍

C++宝典2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C++宝典
  • 李鹏程等编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121106934
  • 出版时间:2010
  • 标注页数:616页
  • 文件大小:191MB
  • 文件页数:638页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C++宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1部分 C++基础1

第1章 走进C++2

1.1 初识C++2

1.1.1 从C到C++2

1.1.2 从面向过程到面向对象3

1.1.3 认识类与对象4

1.1.4 面向对象编程的特点5

1.2 C++的应用现状5

1.3 C++未来的发展6

1.4 如何学习C++6

1.5 小结7

第2章 C++程序的组成及开发过程8

2.1 一般开发过程8

2.2 从简单程序开始9

2.2.1 书写源代码9

2.2.2 编译成目标文件10

2.2.3 链接成可执行程序10

2.2.4 运行程序11

2.3 C++程序的组成11

2.4 注释13

2.4.1 注释的类型13

2.4.2 使用注释的注意事项13

2.5 标准IO对象13

2.6 使用名称空间14

2.7 编译器和编译过程15

2.8 选择集成开发环境17

2.9 Dev-C++简介17

2.9.1 安装18

2.9.2 建立工程19

2.9.3 编译和运行19

2.10 程序的调试20

2.10.1 调试的基本过程20

2.10.2 调试手段21

2.10.3 调试实例22

2.11 综合实例26

2.12 小结27

第3章 程序中的数据28

3.1 常量和变量28

3.1.1 什么是常量28

3.1.2 什么是变量29

3.1.3 定义变量29

3.1.4 初始化变量30

3.1.5 为变量赋值32

3.2 数据类型32

3.2.1 整型33

3.2.2 特殊整型33

3.2.3 无符号整型34

3.2.4 浮点型34

3.2.5 字符型35

3.2.6 无符号字符型37

3.2.7 转义字符37

3.2.8 宽字符型38

3.2.9 布尔型38

3.3 变量与内存的关系39

3.3.1 变量的地址39

3.3.2 变量的字节长度39

3.3.3 计算数据的字节长度40

3.3.4 变量的取值范围41

3.4 自定义数据类型42

3.4.1 结构体42

3.4.2 共用体43

3.4.3 枚举体44

3.5 用宏替换字面常量44

3.6 用const定义常量46

3.7 综合实例46

3.7.1 计算圆的周长和面积46

3.7.2 三角形的类型判断和面积计算47

3.8 小结49

第4章 语句和表达式50

4.1 语句和语句块50

4.1.1 空格的作用50

4.1.2 语句块的组织51

4.1.3 语句块中的变量51

4.2 什么是表达式51

4.3 运算符分类52

4.3.1 算术运算符52

4.3.2 算术运算的溢出53

4.3.3 赋值运算符53

4.3.4 自增和自减运算符54

4.3.5 关系运算符55

4.3.6 逻辑运算符55

4.3.7 条件运算符56

4.3.8 逗号运算符56

4.3.9 位运算符56

4.3.10 复合赋值运算符58

4.4 运算符的优先级和结合性58

4.5 类型转换59

4.5.1 隐式类型转换60

4.5.2 特殊的隐式转换61

4.5.3 显式类型转换61

4.6 综合实例62

4.6.1 找出某个范围内的素数62

4.6.2 求最大值64

4.7 小结64

第5章 程序流程控制65

5.1 程序流程的描述65

5.1.1 伪码65

5.1.2 流程图65

5.2 分支67

5.2.1 if语句67

5.2.2 if...else语句68

5.2.3 if...else语句的嵌套70

5.2.4 switch语句73

5.3 循环76

5.3.1 while语句76

5.3.2 do...while语句78

5.3.3 for语句79

5.4 循环控制语句81

5.4.1 break语句82

5.4.2 continue语句82

5.5 流程跳转语句goto82

5.6 小结83

第6章 数组与字符串84

6.1 什么是数组84

6.2 定义数组85

6.3 初始化数组86

6.4 操作数组87

6.5 数组的缺点89

6.6 二维数组89

6.6.1 什么是二维数组89

6.6.2 定义二维数组90

6.6.3 二维数组的初始化90

6.6.4 操作二维数组92

6.6.5 二维数组的存储93

6.7 字符串94

6.7.1 什么是字符串94

6.7.2 定义字符串95

6.7.3 字符串的初始化95

6.7.4 操作字符串96

6.7.5 字符串的数组97

6.8 字符串处理函数98

6.8.1 字符串复制函数strcpy98

6.8.2 计算字符串长度函数strlen99

6.8.3 字符串连接函数strcat100

6.8.4 字符串比较函数strcmp101

6.9 综合实例102

6.9.1 数组元素排序102

6.9.2 输出杨辉三角104

6.9.3 字符串处理函数的使用106

6.10 小结107

第7章 指针与引用108

7.1 什么是指针108

7.1.1 指针与内存的关系108

7.1.2 定义指针变量109

7.1.3 使用指针指向数据110

7.1.4 获取被指数据110

7.1.5 指针的运算112

7.2 指针与数组113

7.2.1 指向数组的指针114

7.2.2 使用指针访问数组114

7.2.3 指向字符串的指针116

7.3 指针与动态内存分配120

7.3.1 程序中内存的分配方式120

7.3.2 在堆上分配内存121

7.3.3 释放堆上的内存122

7.4 const与指针123

7.4.1 指向const的指针123

7.4.2 const指针124

7.4.3 指向const的const指针125

7.5 引用125

7.5.1 定义引用125

7.5.2 常引用126

7.6 引用与指针的区别127

7.7 综合实例127

7.7.1 数组元素排序127

7.7.2 输出杨辉三角128

7.8 小结130

第8章 函数131

8.1 什么是函数131

8.1.1 函数的组成部分131

8.1.2 调用函数132

8.1.3 为什么要使用函数133

8.2 函数的声明和定义133

8.2.1 函数的参数列表133

8.2.2 调用函数前先声明134

8.2.3 在头文件中声明函数134

8.2.4 定义函数135

8.2.5 函数实例——判断闰年136

8.3 参数传递138

8.3.1 函数的形参和实参138

8.3.2 值传递139

8.3.3 参数类型检查139

8.3.4 使用默认实参140

8.4 指针和引用参数141

8.4.1 指针参数141

8.4.2 数组参数143

8.4.3 引用参数146

8.5 函数中的变量146

8.5.1 局部变量146

8.5.2 全局变量147

8.5.3 全局变量的初始化148

8.5.4 多个源文件共享全局变量148

8.5.5 静态变量149

8.5.6 全局静态变量150

8.6 递归函数151

8.7 内联函数152

8.8 函数重载154

8.8.1 为什么需要函数重载154

8.8.2 什么时侯需要重载函数155

8.8.3 函数重载解析156

8.9 函数指针157

8.9.1 函数地址157

8.9.2 定义函数指针158

8.9.3 使用函数指针调用函数159

8.9.4 函数指针的用途160

8.10 综合实例161

8.10.1 判断素数161

8.10.2 分割字符串163

8.11 小结165

第9章 函数模板166

9.1 为什么要使用函数模板166

9.2 定义函数模板168

9.2.1 抽取通用算法逻辑168

9.2.2 语法169

9.2.3 使用非类型参数170

9.3 使用函数模板170

9.3.1 实例化函数模板171

9.3.2 取函数模板的地址172

9.3.3 函数模板实参的推演174

9.3.4 显式指定函数模板的实参175

9.4 实参推演中的类型转换175

9.4.1 左值转换176

9.4.2 限定符修饰转换176

9.4.3 到基类的转换178

9.5 函数模板的编译179

9.5.1 函数模板的两种编译方式179

9.5.2 函数模板实例的编译时机180

9.6 函数模板定义中的标识符解析181

9.7 函数模板的特化182

9.8 函数模板的重载184

9.9 函数匹配规则185

9.10 综合实例186

9.10.1 数组求和函数模板186

9.10.2 数组排序函数模板188

9.11 小结190

第10章 错误与异常处理191

10.1 识别和处理错误191

10.1.1 利用函数返回值识别错误191

10.1.2 对错误结果做出相应处理192

10.2 什么是异常194

10.2.1 什么时候出现异常194

10.2.2 异常与错误的区别195

10.3 抛出异常195

10.3.1 主动抛出异常195

10.3.2 自定义异常类197

10.4 捕获异常198

10.4.1 try块198

10.4.2 异常处理器198

10.4.3 异常对象200

10.4.4 栈展开200

10.4.5 重新抛出202

10.4.6 捕获全部异常203

10.5 函数与异常204

10.5.1 异常规格说明204

10.5.2 异常安全的函数205

10.6 使用异常的注意事项206

10.7 综合实例206

10.8 小结208

第11章 宏与预编译209

11.1 预处理器和编译器209

11.2 预处理器的任务210

11.2.1 包含文件210

11.2.2 搜索头文件210

11.2.3 展开宏211

11.3 宏的作用212

11.3.1 替代字面常量212

11.3.2 替代运算符213

11.3.3 声明已定义符号214

11.3.4 预定义的宏214

11.4 带参数的宏215

11.4.1 定义带参数的宏216

11.4.2 注意宏展开的结果217

11.4.3 带参数的宏与函数的异同218

11.4.4 特殊的宏符号219

11.5 宏指令和预定义的宏219

11.5.1 宏指令219

11.5.2 利用预定义的宏指令进行有条件编译220

11.5.3 文件包含命令和包含警卫221

11.6 综合实例223

11.7 小结224

第2部分 面向对象编程225

第12章 面向对象基础226

12.1 对象与类详解226

12.1.1 什么是对象226

12.1.2 什么是类227

12.2 对象的特征228

12.2.1 封装性228

12.2.2 继承性229

12.2.3 多态性230

12.3 面向过程与面向对象详解230

12.3.1 面向过程230

12.3.2 面向对象231

12.4 面向对象的分析(OOA)232

12.4.1 对问题领域进行建模232

12.4.2 OOA的基本原则233

12.4.3 OOA的基本步骤234

12.5 面向对象的设计(OOD)235

12.5.1 OOD要解决的问题235

12.5.2 OOD的一些基本原则235

12.5.3 OOD的基本步骤236

12.6 综合实例237

12.7 小结238

第13章 类的封装239

13.1 定义类239

13.1.1 声明一个类239

13.1.2 类的数据成员240

13.1.3 类的成员函数241

13.1.4 类的组织结构242

13.1.5 分离成员函数的定义与实现242

13.2 类对象244

13.2.1 定义类对象244

13.2.2 访问类对象成员245

13.2.3 隐含的this指针246

13.3 类成员的访问限制248

13.3.1 一般访问限制248

13.3.2 私有与安全性249

13.3.3 友元249

13.4 类的构造函数251

13.4.1 构造函数的定义252

13.4.2 构造函数的重载252

13.4.3 默认构造函数253

13.4.4 复制构造函数254

13.4.5 构造函数初始化列表255

13.5 类的析构函数257

13.5.1 析构函数的定义257

13.5.2 默认析构函数258

13.6 类的static成员259

13.6.1 定义static成员260

13.6.2 使用static成员260

13.7 综合实例261

13.7.1 人的活动261

13.7.2 自定义字符串类262

13.8 小结264

第14章 重载操作符和自定义转换265

14.1 重载操作符的定义和使用265

14.1.1 重载操作符的定义格式265

14.1.2 可重载的操作符266

14.1.3 使用重载操作符266

14.1.4 类成员和全局操作符267

14.1.5 操作符重载和友元的关系268

14.2 输出和输入操作符的重载269

14.2.1 输出操作符〈〈的重载270

14.2.2 输入操作符〉〉的重载271

14.3 赋值操作符273

14.3.1 类的赋值操作273

14.3.2 浅复制与深复制274

14.3.3 重载赋值操作符275

14.4 算术和关系操作符的重载276

14.4.1 算术操作符的重载277

14.4.2 相等操作符的重载277

14.4.3 关系操作符的重载278

14.5 其他操作符的重载278

14.5.1 下标操作符的重载278

14.5.2 成员访问操作符的重载278

14.5.3 括号操作符的重载279

14.6 自定义转换280

14.6.1 构造函数转换280

14.6.2 操作符转换280

14.7 综合实例281

14.8 小结284

第15章 类的继承285

15.1 确定类的层次285

15.2 继承的类型286

15.2.1 公有继承286

15.2.2 私有继承288

15.2.3 保护继承289

15.3 选择继承方式290

15.4 派生类对象的内存布局292

15.5 将派生类对象转换为基类对象293

15.6 派生类的构造和析构294

15.6.1 构造派生类294

15.6.2 析构派生类296

15.7 使用基类成员299

15.8 基类类型的指针和引用300

15.9 综合实例303

15.10 小结305

第16章 多继承和虚拟继承306

16.1 为什么要用多继承306

16.2 定义多继承307

16.3 多继承派生类对象的内存布局308

16.4 访问基类成员309

16.5 多继承存在的问题311

16.6 虚拟继承312

16.6.1 虚拟继承的语法313

16.6.2 虚拟继承对象的内存布局313

16.6.3 虚拟继承中的构造316

16.7 虚拟继承的缺点317

16.8 综合实例318

16.8.1 改进水陆两栖坦克类318

16.8.2 改进鸭嘴兽类319

16.9 小结321

第17章 多态322

17.1 什么是多态322

17.2 函数、模板和宏的多态性322

17.3 动态多态324

17.3.1 为什么要用动态多态324

17.3.2 如何实现动态多态325

17.3.3 用动态多态改进图形绘制程序327

17.3.4 动态多态实例——计算不同职员的薪水328

17.4 虚函数与模板方法331

17.5 纯虚函数与抽象类332

17.5.1 纯虚函数332

17.5.2 什么时候用纯虚函数333

17.5.3 从抽象类派生具体类333

17.5.4 仅有纯虚函数的类——接口334

17.5.5 图形类的接口335

17.6 虚函数与动态绑定337

17.6.1 如何实现动态绑定337

17.6.2 虚函数的静态调用338

17.6.3 虚函数的代价338

17.7 虚拟析构函数339

17.8 虚函数的默认实参340

17.9 综合实例341

17.10 小结343

第18章 类模板344

18.1 什么是类模板344

18.2 定义类模板345

18.2.1 语法345

18.2.2 非类型参数347

18.2.3 模板参数的默认实参348

18.3 生成类模板的实例348

18.3.1 类型参数的模板实例化349

18.3.2 非类型参数的模板实例化349

18.3.3 类模板范例350

18.4 类模板的静态成员352

18.5 类模板的友元355

18.6 类模板的特化356

18.6.1 类模板的全特化357

18.6.2 类模板的偏特化358

18.6.3 类模板的匹配规则359

18.7 综合实例361

18.8 小结364

第19章 文件流365

19.1 文件处理的整个过程365

19.2 处理文件流的类367

19.3 打开文件370

19.3.1 打开文件的函数370

19.3.2 打开文件的方式373

19.4 操作文件375

19.4.1 格式化读写375

19.4.2 无格式读数据377

19.4.3 无格式写数据378

19.5 判断文件流状态379

19.5.1 检查文件是否打开379

19.5.2 文件流的状态379

19.6 重定位读写位置381

19.7 关闭文件382

19.8 综合实例383

19.8.1 模拟生成电子邮件383

19.8.2 模拟读电子邮件385

19.9 小结386

第3部分 标准模板库387

第20章 使用标准模板库STL388

20.1 STL的形成388

20.1.1 STL的历史388

20.1.2 STL的各种版本389

20.2 STL的组成部分390

20.3 容器的分类392

20.4 容器的常用方法394

20.4.1 初始化容器394

20.4.2 增加元素395

20.4.3 删除元素396

20.4.4 查找元素397

20.4.5 修改元素398

20.4.6 统计容器数据398

20.4.7 其他方法399

20.5 配置器401

20.6 迭代器402

20.6.1 迭代器思想402

20.6.2 迭代器分类403

20.6.3 定义迭代器变量405

20.6.4 迭代器的基本用法406

20.6.5 使用迭代器区间409

20.6.6 迭代器的有效性411

20.7 适配器411

20.8 小结413

第21章 序列式容器414

21.1 向量vector414

21.1.1 vector概述414

21.1.2 构造vector415

21.1.3 处理vector的元素416

21.1.4 交换两个容器的元素417

21.1.5 使用向量的实例418

21.2 双向链表list420

21.2.1 list概述420

21.2.2 构造list421

21.2.3 处理list的节点421

21.2.4 链表的拼接和融合423

21.2.5 list的反向迭代器424

21.3 双端队列deque426

21.3.1 deque概述426

21.3.2 使用deque427

21.4 容器适配器429

21.5 栈stack429

21.5.1 stack概述429

21.5.2 使用stack430

21.6 小结432

第22章 关联式容器433

22.1 关联式容器的存储结构433

22.1.1 二叉树的概念433

22.1.2 二叉树的表示434

22.1.3 二叉树的遍历方法435

22.1.4 二叉搜索树436

22.1.5 平衡二叉树437

22.1.6 关联式容器的元素439

22.2 映射map440

22.2.1 定义并构造map440

22.2.2 map容器的pair结构441

22.2.3 使用insert插入数据443

22.2.4 使用下标运算符[]插入数据445

22.2.5 查找数据445

22.2.6 遍历map447

22.2.7 删除数据447

22.2.8 其他操作448

22.2.9 使用map容器管理学生名册449

22.3 集合set452

22.3.1 定义并构造set453

22.3.2 set容器的迭代器454

22.3.3 set容器的基本操作455

22.3.4 使用set容器管理学生名册456

22.4 其他关联式容器457

22.5 综合实例458

22.6 小结460

第23章 函数对象和算法461

23.1 函数对象概述461

23.1.1 函数对象的定义461

23.1.2 用函数对象替代函数指针462

23.2 STL函数对象分类466

23.2.1 一元函数对象466

23.2.2 二元函数对象467

23.2.3 算术类函数对象468

23.2.4 关系类函数对象468

23.2.5 逻辑类函数对象469

23.2.6 STL函数对象的一般应用469

23.3 函数对象适配器469

23.3.1 可以适配的函数对象470

23.3.2 绑定器471

23.3.3 绑定函数473

23.3.4 取反器474

23.3.5 取反函数475

23.3.6 适配器的级联476

23.4 算法概述476

23.4.1 算法的特征477

23.4.2 算法的复杂度477

23.4.3 算法泛化478

23.5 STL算法详解479

23.5.1 迭代器参数479

23.5.2 函数对象参数480

23.5.3 算法分类481

23.6 遍历算法482

23.7 查找算法483

23.7.1 查找单个元素484

23.7.2 搜索子区间485

23.7.3 搜索子区间中的一个值487

23.7.4 有序区间的查找算法488

23.8 排序算法489

23.8.1 sort和stable_sort490

23.8.2 partial_sort和partial_sort_copy490

23.9 整理算法492

23.9.1 分类492

23.9.2 随机排列493

23.9.3 颠倒494

23.9.4 旋转495

23.10 小结496

第24章 名称空间497

24.1 为什么要使用名称空间497

24.2 创建名称空间499

24.2.1 创建普通名称空间500

24.2.2 创建嵌套名称空间501

24.2.3 定义名称空间的成员503

24.3 使用名称空间505

24.3.1 使用整个名称空间505

24.3.2 使用名称空间中的名字506

24.4 为名称空间创建别名507

24.5 匿名名称空间509

24.5.1 定义匿名名称空间509

24.5.2 匿名名称空间与static的区别510

24.6 标准名称空间std511

24.7 小结512

第4部分 底层开发513

第25章 位操作514

25.1 数据的表示和编码514

25.1.1 数据进制514

25.1.2 数据存储515

25.2 位运算517

25.2.1 位运算简介517

25.2.2 按位与“&”517

25.2.3 按位或“|”518

25.2.4 按位异或“^”518

25.2.5 按位取反“~”518

25.2.6 按位左移“〈〈”518

25.2.7 按位右移“〉〉”519

25.2.8 位赋值运算符519

25.3 位运算的应用519

25.3.1 设置位520

25.3.2 取指定位521

25.3.3 特定位取反522

25.4 位段的定义及应用523

25.4.1 位段的定义523

25.4.2 位段的应用525

25.5 小结525

第26章 在C++中嵌入汇编语言526

26.1 汇编语言的基本概念526

26.1.1 什么是汇编语言526

26.1.2 汇编语言的特点526

26.1.3 汇编语言的应用领域527

26.2 汇编语言的基本语法528

26.2.1 通用数据传送指令528

26.2.2 累加器专用传送指令530

26.2.3 地址传送指令532

26.2.4 标志寄存器传送指令533

26.2.5 算术指令534

26.2.6 逻辑指令540

26.2.7 控制转移指令543

26.2.8 循环控制指令546

26.2.9 子程序调用和返回指令546

26.3 汇编语言在C++中的应用549

26.3.1 内联汇编的优点549

26.3.2 __asm语法549

26.3.3 在__asm块里使用汇编语言550

26.3.4 在__asm块中使用C/C++元素551

26.3.5 一个例子553

26.4 小结557

第5部分 综合案例559

第27章 图书管理系统560

27.1 需求分析560

27.2 系统设计561

27.2.1 总体设计561

27.2.2 详细设计562

27.2.3 数据库设计562

27.3 类设计564

27.3.1 创建应用程序564

27.3.2 设计图书类565

27.3.3 设计图书库类567

27.3.4 设计读者类568

27.3.5 设计读者库类569

27.4 图书管理571

27.4.1 查找图书571

27.4.2 增加图书572

27.4.3 维护图书574

27.5 读者管理576

27.5.1 查找读者576

27.5.2 增加读者578

27.5.3 维护读者579

27.6 借书模块581

27.7 还书模块583

27.8 系统集成584

27.9 小结587

第28章 学生管理系统588

28.1 需求分析588

28.2 总体设计589

28.3 数据结构设计589

28.3.1 链表概述590

28.3.2 构造单链表590

28.3.3 设计数据结构591

28.4 类设计593

28.4.1 创建应用程序593

28.4.2 设计Student类594

28.5 详细设计595

28.5.1 创建链表595

28.5.2 插入节点597

28.5.3 添加学生信息599

28.5.4 显示学生信息601

28.5.5 读入学生信息602

28.5.6 编辑学生信息605

28.5.7 删除学生信息608

28.5.8 保存学生信息610

28.6 系统集成611

28.6.1 设计菜单611

28.6.2 绑定菜单功能612

28.6.3 设计主函数615

28.7 小结615

热门推荐