图书介绍

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

C++入门经典
  • (美)霍尔顿 (Horton 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302406280
  • 出版时间:2015
  • 标注页数:591页
  • 文件大小:107MB
  • 文件页数:608页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C++入门经典PDF格式电子书版下载

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

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

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

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

图书目录

第1章 基本概念1

1.1 现代C++1

1.2 C++程序概念2

1.2.1 注释和空白2

1.2.2 预处理指令和头文件3

1.2.3 函数3

1.2.4 语句4

1.2.5 数据输入输出4

1.2.6 return语句5

1.2.7 名称空间5

1.2.8 名称和关键字6

1.3 类和对象6

1.4 模板7

1.5 程序文件7

1.6 标准库7

1.7 代码的表示样式7

1.8 创建可执行文件8

1.9 表示数字9

1.9.1 二进制数9

1.9.2 十六进制数11

1.9.3 负的二进制数12

1.9.4 八进制数14

1.9.5 Big-Endian和Little-Endian系统14

1.9.6 浮点数15

1.10 表示字符16

1.10.1 ASCII码16

1.10.2 UCS和Unicode17

1.11 C++源字符17

1.11.1 三字符序列18

1.11.2 转义序列18

1.12 过程化编程方法和面向对象编程方法20

1.13 本章小结21

1.14 练习22

第2章 基本数据类型23

2.1 变量、数据和数据类型23

2.1.1 定义整型变量24

2.1.2 定义有固定值的变量26

2.2 整型字面量26

2.2.1 十进制整型字面量27

2.2.2 十六进制的整型字面量27

2.2.3 八进制的整型字面量27

2.2.4 二进制的整型字面量28

2.3 整数的计算28

2.4 op=赋值运算符33

2.5 using声明和指令34

2.6 sizeof运算符34

2.7 整数的递增和递减35

2.8 定义浮点变量37

2.8.1 浮点字面量38

2.8.2 浮点数的计算38

2.8.3 缺点38

2.8.4 无效的浮点结果39

2.9 数值函数40

2.10 流输出的格式化43

2.11 混合的表达式和类型转换45

2.11.1 显式类型转换46

2.11.2 老式的强制转换48

2.12 确定数值的上下限49

2.13 使用字符变量50

2.13.1 使用Unicode字符51

2.13.2 auto关键字52

2.13.3 lvalue和rvalue52

2.14 本章小结53

2.15 练习54

第3章 处理基本数据类型55

3.1 运算符的优先级和相关性55

3.2 按位运算符57

3.2.1 移位运算符58

3.2.2 使用按位与运算符60

3.2.3 使用按位或运算符61

3.2.4 使用按位异或运算符63

3.3 枚举数据类型67

3.4 数据类型的同义词70

3.5 变量的生存期70

3.5.1 定位变量的定义71

3.5.2 全局变量71

3.5.3 静态变量74

3.5.4 外部变量75

3.6 本章小结75

3.7 练习76

第4章 决策77

4.1 比较数据值77

4.1.1 应用比较运算符78

4.1.2 比较浮点数值79

4.2 if语句80

4.2.1 嵌套的if语句82

4.2.2 不依赖编码的字符处理84

4.3 if-else语句85

4.3.1 嵌套的if-else语句87

4.3.2 理解嵌套的if语句88

4.4 逻辑运算符89

4.4.1 逻辑与运算符90

4.4.2 逻辑或运算符90

4.4.3 逻辑非运算符91

4.5 条件运算符92

4.6 switch语句94

4.7 无条件分支98

4.8 语句块和变量作用域99

4.9 本章小结100

4.10 练习100

第5章 数组和循环103

5.1 数据数组103

5.2 理解循环105

5.3 for循环106

5.3.1 避免幻数107

5.3.2 用初始化列表定义数组的大小109

5.3.3 确定数组的大小109

5.3.4 用浮点数值控制for循环110

5.3.5 使用更复杂的循环控制表达式112

5.3.6 逗号运算符113

5.3.7 基于区域的for循环114

5.4 while循环115

5.5 do-while循环119

5.6 嵌套的循环120

5.7 跳过循环迭代123

5.8 循环的中断125

5.9 字符数组128

5.10 多维数组131

5.10.1 初始化多维数组134

5.10.2 在默认情况下设置维数135

5.10.3 多维字符数组136

5.11 数组的替代品137

5.11.1 使用array<T,N>容器138

5.11.2 使用std::vector<T>容器142

5.11.3 矢量的容量和大小143

5.11.4 删除矢量容器中的元素145

5.12 本章小结145

5.13 练习146

第6章 指针和引用149

6.1 什么是指针149

6.1.1 地址运算符151

6.1.2 间接运算符152

6.1.3 为什么使用指针153

6.2 char类型的指针154

6.3 常量指针和指向常量的指针158

6.4 指针和数组159

6.4.1 指针的算术运算160

6.4.2 计算两个指针之间的差162

6.4.3 使用数组名的指针表示法162

6.5 动态内存分配165

6.5.1 栈和堆165

6.5.2 运算符new和delete166

6.5.3 数组的动态内存分配167

6.5.4 通过指针选择成员169

6.6 动态内存分配的危险169

6.6.1 内存泄漏169

6.6.2 自由存储区的碎片170

6.7 原指针和智能指针170

6.7.1 使用unique_ptr<T>指针172

6.7.2 使用shared_ptr<T>指针173

6.7.3 比较shared_ptr<T>对象177

6.7.4 weak_ptr<T>指针177

6.8 理解引用178

6.8.1 定义左值引用179

6.8.2 在基于区域的for循环中使用引用变量180

6.8.3 定义右值引用180

6.9 本章小结181

6.10 练习181

第7章 操作字符串183

7.1 更好的string类型183

7.1.1 定义string对象184

7.1.2 string对象的操作186

7.1.3 访问字符串中的字符188

7.1.4 访问子字符串190

7.1.5 比较字符串191

7.1.6 搜索字符串196

7.1.7 修改字符串203

7.2 国际字符串207

7.3 包含Unicode字符串的对象208

7.4 原字符串字面量208

7.5 本章小结209

7.6 练习210

第8章 定义函数211

8.1 程序的分解211

8.1.1 类中的函数212

8.1.2 函数的特征212

8.2 定义函数212

8.2.1 函数体213

8.2.2 函数声明215

8.3 给函数传送参数217

8.3.1 按值传送机制217

8.3.2 按引用传送223

8.3.3 main()的参数227

8.4 默认的参数值228

8.5 从函数中返回值231

8.5.1 返回指针231

8.5.2 返回引用235

8.6 内联函数236

8.7 静态变量237

8.8 函数的重载239

8.8.1 重载和指针参数241

8.8.2 重载和引用参数241

8.8.3 重载和const参数243

8.8.4 重载和默认参数值244

8.9 函数模板245

8.9.1 创建函数模板的实例246

8.9.2 显式指定模板参数247

8.9.3 函数模板的特例248

8.9.4 函数模板和重载249

8.9.5 带有多个参数的函数模板250

8.9.6 非类型的模板参数251

8.10 拖尾返回类型252

8.11 函数指针253

8.12 递归256

8.12.1 应用递归259

8.12.2 Quicksort算法259

8.12.3 main()函数260

8.12.4 extract_words()函数261

8.12.5 swap()函数262

8.12.6 sort()函数262

8.12.7 max_word_length()函数263

8.12.8 show_words()函数264

8.13 本章小结265

8.14 练习266

第9章 lambda表达式269

9.1 lambda表达式简介269

9.2 定义lambda表达式269

9.3 lambda表达式的命名270

9.4 把lambda表达式传递给函数272

9.4.1 接受lambda表达式变元的函数模板272

9.4.2 lambda变元的函数参数类型273

9.4.3 使用std::function模板类型274

9.5 捕获子句277

9.6 在模板中使用lambda表达式279

9.7 lambda表达式中的递归281

9.8 本章小结283

9.9 练习283

第10章 程序文件和预处理指令285

10.1 理解转换单元285

10.1.1 “一个定义”规则286

10.1.2 程序文件和链接286

10.1.3 确定名称的链接属性286

10.1.4 外部名称287

10.1.5 具有外部链接属性的const变量287

10.2 预处理源代码288

10.3 定义预处理标识符289

10.4 包含头文件290

10.5 名称空间292

10.5.1 全局名称空间293

10.5.2 定义名称空间293

10.5.3 应用using声明296

10.5.4 函数和名称空间296

10.5.5 未命名的名称空间299

10.5.6 名称空间的别名299

10.5.7 嵌套的名称空间300

10.6 逻辑预处理指令301

10.6.1 逻辑#if指令301

10.6.2 测试指定标识符的值302

10.6.3 多个代码选择302

10.6.4 标准的预处理宏303

10.7 调试方法304

10.7.1 集成调试器304

10.7.2 调试中的预处理指令305

10.7.3 使用assert宏309

10.7.4 关闭断言机制310

10.8 静态断言310

10.9 本章小结312

10.10 练习313

第11章 定义自己的数据类型315

11.1 类和面向对象编程315

11.1.1 封装316

11.1.2 继承318

11.1.3 多态性318

11.1.4 术语319

11.2 定义类320

11.3 构造函数322

11.3.1 在类的外部定义构造函数324

11.3.2 默认构造函数的参数值326

11.3.3 在构造函数中使用初始化列表326

11.3.4 使用explicit关键字327

11.3.5 委托构造函数329

11.3.6 默认的副本构造函数331

11.4 访问私有类成员332

11.5 友元333

11.5.1 类的友元函数334

11.5.2 友元类336

11.6 this指针337

11.7 const对象和const函数成员338

11.8 类的对象数组340

11.9 类对象的大小342

11.10 类的静态成员342

11.10.1 静态数据成员342

11.10.2 类的静态函数成员347

11.11 析构函数347

11.12 类对象的指针和引用350

11.13 将指针作为类的成员351

11.13.1 定义Package类353

11.13.2 定义TruckLoad类354

11.13.3 实现TruckLoad类355

11.14 嵌套类360

11.15 本章小结363

11.16 练习363

第12章 运算符重载365

12.1 为类实现运算符365

12.1.1 运算符重载366

12.1.2 可以重载的运算符366

12.1.3 实现重载运算符366

12.1.4 全局运算符函数369

12.1.5 提供对运算符的全部支持369

12.1.6 在类中实现所有的比较运算符371

12.2 运算符函数术语373

12.3 默认的类成员374

12.3.1 定义析构函数375

12.3.2 何时定义副本构造函数377

12.3.3 实现赋值运算符377

12.3.4 实现移动操作379

12.4 重载算术运算符380

12.4.1 改进输出操作384

12.4.2 根据一个运算符实现另一个运算符386

12.5 重载下标运算符387

12.6 重载类型转换394

12.7 重载递增和递减运算符395

12.8 函数对象396

12.9 本章小结397

12.10 练习398

第13章 继承399

13.1 类和面向对象编程399

13.2 类的继承401

13.2.1 继承和聚合401

13.2.2 派生类402

13.3 把类的成员声明为protected405

13.4 派生类成员的访问级别405

13.4.1 在类层次结构中使用访问指定符406

13.4.2 改变继承成员的访问指定符408

13.5 派生类中的构造函数操作408

13.5.1 派生类中的副本构造函数412

13.5.2 派生类中的默认构造函数414

13.5.3 继承构造函数414

13.6 继承中的析构函数415

13.7 重复的成员名417

13.8 重复的函数成员名418

13.9 多重继承419

13.9.1 多个基类419

13.9.2 继承成员的模糊性420

13.9.3 重复的继承424

13.9.4 虚基类425

13.10 在相关的类类型之间转换425

13.11 本章小结426

13.12 练习426

第14章 多态性429

14.1 理解多态性429

14.1.1 使用基类指针429

14.1.2 调用继承的函数431

14.1.3 虚函数434

14.1.4 虚函数中的默认参数值442

14.1.5 通过智能指针调用虚函数443

14.1.6 通过引用调用虚函数444

14.1.7 调用虚函数的基类版本445

14.1.8 在指针和类对象之间转换446

14.1.9 动态强制转换447

14.1.10 转换引用449

14.1.11 确定多态类型449

14.2 多态性的成本450

14.3 纯虚函数451

14.3.1 抽象类452

14.3.2 间接的抽象基类454

14.4 通过指针释放对象457

14.5 本章小结458

14.6 练习459

第15章 运行时错误和异常461

15.1 处理错误461

15.2 理解异常462

15.2.1 抛出异常463

15.2.2 异常处理过程465

15.2.3 未处理的异常466

15.2.4 导致抛出异常的代码467

15.2.5 嵌套的try块468

15.3 用类对象作为异常472

15.3.1 匹配Catch处理程序和异常473

15.3.2 用基类处理程序捕获派生类异常476

15.3.3 重新抛出异常478

15.3.4 捕获所有的异常481

15.4 抛出异常的函数482

15.4.1 函数try块483

15.4.2 不抛出异常的函数483

15.4.3 构造函数try块484

15.4.4 异常和析构函数484

15.5 标准库异常485

15.5.1 异常类的定义486

15.5.2 使用标准异常487

15.6 本章小结490

15.7 练习491

第16章 类模板493

16.1 理解类模板493

16.2 定义类模板494

16.2.1 模板参数495

16.2.2 简单的类模板495

16.2.3 定义类模板的函数成员497

16.3 创建类模板的实例501

16.4 类模板的静态成员506

16.5 非类型的类模板参数507

16.5.1 带有非类型参数的函数成员的模板510

16.5.2 非类型参数的变元514

16.5.3 把指针和数组用作非类型参数514

16.6 模板参数的默认值515

16.7 模板的显式实例化516

16.8 特殊情形516

16.8.1 在类模板中使用static_assert()517

16.8.2 定义类模板特化518

16.8.3 部分模板特化519

16.8.4 从多个部分特化中选择519

16.9 类模板的友元520

16.10 带有嵌套类的类模板521

16.11 本章小结528

16.12 练习528

第17章 文件输入与输出531

17.1 C++中的输入输出531

17.1.1 理解流531

17.1.2 使用流的优点533

17.2 流类534

17.2.1 标准流对象535

17.2.2 流的插入和提取操作535

17.2.3 流操纵程序537

17.3 文件流540

17.3.1 在文本模式下写入文件540

17.3.2 在文本模式下读取文件543

17.4 设置流打开模式546

17.5 未格式化的流操作554

17.5.1 未格式化的流输入函数554

17.5.2 未格式化的流输出函数557

17.6 流输入输出中的错误557

17.7 二进制模式中的流操作559

17.8 文件的读写操作570

17.9 字符串流577

17.10 对象和流578

17.10.1 给对象使用插入运算符579

17.10.2 给对象使用提取运算符579

17.10.3 二进制模式中的对象I/O582

17.10.4 流中更复杂的对象585

17.11 本章小结590

17.12 练习590

热门推荐