图书介绍

标准C++编程宝典PDF|Epub|txt|kindle电子书版本网盘下载

标准C++编程宝典
  • (美)Raphael Pender,苏剑等编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:7121006782
  • 出版时间:2005
  • 标注页数:593页
  • 文件大小:119MB
  • 文件页数:616页
  • 主题词: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.2 C与C++的比较2

1.1 C语言和C++语言的历史2

第1章 C++语言概述2

1.3 C++简述3

1.4 main()函数5

1.5 小结6

2.1 学习编写第一个程序7

2.1.4 main()函数的语句块8

第2章 编写简单的C++程序8

2.1.3 main()函数声明8

2.1.1 #include指令8

2.1.2 空行8

2.2 标识符9

2.1.8 语句块的结束9

2.1.5 源代码注释9

2.1.6 控制台输出9

2.1.7 return语句9

2.4 标准输出流10

2.3 关键字10

2.5.1 布尔型变量11

2.5 变量11

2.5.2 字符型变量12

2.5.3 wchar_t型变量13

2.5.4 整型变量14

2.6 常量15

2.5.5 浮点型变量15

2.6.2 转义字符16

2.6.1 字符型常量16

2.6.5 地址常量17

2.6.4 浮点型常量17

2.6.3 整型常量17

2.7 表达式18

2.6.6 字符串常量18

2.8 赋值语句19

2.9 用逗号分隔的声明语句20

2.10.1 算术运算符21

2.10 表达式中的运算符21

2.10.2 逻辑运算符22

2.10.3 位逻辑运算符23

2.10.5 关系运算符24

2.10.4 位移运算符24

2.10.6 自增运算符和自减运算符25

2.10.7 赋值运算符27

20.2.3 关联式容器28

2.10.8 复合赋值运算符28

20.2.6 谓词29

2.10.9 条件运算符29

2.10.10 逗号运算符31

2.11 运算符的优先级与结合性32

2.11.1 结合性32

2.11.2 优先级33

2.12 表达式不参加运算的情况33

2.13 初始化34

2.14 类型转换35

2.15 控制台输入与输出36

2.15.1 标准输出流36

2.15.2 格式化输出37

2.15.3 标准错误流38

2.15.4 标准输入流39

6.5.1 堆39

2.16 小结40

3.1 函数42

第3章 函数42

3.2 实际参数和形式参数43

3.3.1 无标识符的参数类型43

3.3 函数原型43

3.3.2 一个典型的函数原型44

3.3.4 参数列表为空的函数44

3.3.5 参数列表可变的函数44

3.3.3 返回类型为void的函数44

3.3.6 既不带参数也没有返回值的函数45

3.3.8 不需要原型的函数45

3.4 定义和调用函数45

3.3.7 标准库函数的原型45

3.5 从函数返回46

3.6 函数的返回值48

3.7 传递和使用参数49

3.7.2 通过函数调用来进行初始化50

3.7.3 初始化的顺序50

3.7.1 标识符的作用域50

3.7.4 具有多个参数的函数51

3.7.6 值传递52

3.7.7 实际参数和返回值的类型转换52

3.8 无名形式参数52

3.7.5 用做实际参数的函数调用52

3.9 默认的函数参数53

3.10 内联函数54

3.11 递归55

3.12.1 为不同的操作而重载55

3.12 函数的重载55

3.12.2 为不同的格式而重载57

3.14 链接说明58

3.13 安全链接58

3.15 小结62

4.1 语句块63

4.1.1 语句块的嵌套深度63

4.1.2 缩进风格63

第4章 C++的程序流程控制63

4.2 分支语句64

4.2.1 if语句64

4.2.2 if...else语句67

4.2.3 else if语句67

4.2.4 switch...case语句69

4.2.5 在if语句的条件表达式中进行变量声明70

4.3 循环语句71

4.3.1 while语句71

4.3.2 do...while语句72

4.3.3 for语句74

4.3.4 在for语句的条件表达式中声明变量76

4.4.1 break语句76

4.4 循环控制语句76

4.4.2 continue语句77

4.5 跳转语句:goto78

4.5.1 goto语句的错误用法79

4.5.3 改正错误的goto语句80

4.5.2 C++语言的goto语句和C语言的goto语句的比较80

4.5.4 是否应该使用goto语句82

4.6 小结82

第5章 数据类型83

5.1.1 全局作用域83

5.1 标识符的作用域83

5.1.2 局部作用域84

5.1.3 全局作用域解析符86

5.1.4 文件作用域87

5.1.5 变量的作用域和生存周期88

5.2 存储类89

5.2.1 自动存储类89

5.2.2 静态存储类90

5.2.3 外部存储类91

5.2.4 寄存器存储类92

5.3 初始化的默认值93

5.4 类型修饰符94

5.4.1 const类型修饰符94

5.4.2 volatile类型修饰符95

5.5 用户定义的数据类型95

5.5.1 声明结构96

5.5.3 引用结构成员96

5.5.2 定义结构变量96

5.5.4 初始化结构变量97

5.5.5 结构的嵌套98

5.5.6 向函数传递结构和从函数返回结构99

5.6 联合数据类型100

5.6.1 初始化联合102

5.6.2 匿名联合103

5.6.3 枚举常量104

5.7.1 声明数组105

5.7.2 利用下标访问数组元素105

5.7 数组105

5.7.3 初始化数组106

5.7.4 结构数组107

5.7.5 多维数组108

5.7.6 字符型数组:一个特例109

5.8 小结110

6.1 地址和指针111

6.1.1 指向内部数据类型的指针111

第6章 地址、指针和引用型变量111

6.1.2 指针的算术运算113

6.1.3 指针和数组的关系115

6.1.4 指向结构的指针118

6.1.5 作为函数参数的指针119

6.1.6 以地址作为函数的返回值122

6.1.7 指向函数的指针124

6.1.8 指向指针的指针127

6.1.9 指向指针数组的指针128

6.1.10 指向const型变量的指针129

6.1.11 const型指针变量131

6.1.12 void型指针132

6.2 sizeof运算符134

6.3 强制类型转换136

6.3.2 typedef136

6.3.1 C风格的强制类型转换136

6.4 命令行参数:argc和argv138

6.5 程序的内存结构139

6.5.2 new运算符和delete运算符139

6.5.3 为大小固定的数组分配内存140

6.5.4 为动态数组分配内存141

6.5.5 堆耗尽时的处理142

6.5.6 栈142

6.6 递归143

6.6.1 一个简单的递归函数143

6.6.2 一个利用递归实现的计算器程序145

6.7 引用型变量148

6.7.1 引用是一个别名149

6.7.2 初始化引用150

6.7.3 用引用来简化复杂的表示法151

6.7.4 用做函数形参的引用152

6.7.5 以引用方式调用函数154

6.7.6 const型引用形参155

6.7.7 作为函数返回值的引用155

6.7.8 以const型引用作为返回值157

6.7.9 返回指向自变量的引用157

6.7.10 引用和指针157

6.8 小结158

第7章 库函数159

7.1 <cassert>头文件160

7.2 <cctype>头文件161

7.3 <cerrno>头文件162

7.4 <cmath>头文件163

7.5 <csetjmp>头文件164

7.6 <cstdarg>头文件166

7.7 <cstdio>头文件167

7.8 <cstdlib>头文件168

7.8.1 数字函数168

7.8.2 内存管理函数168

7.8.3 系统函数168

7.8.4 随机数发生器函数169

7.9 <cstring>头文件170

7.10 <ctime>头文件172

7.11 小结173

第8章 预处理程序174

8.1 预处理指令174

8.2 包含文件174

8.3 宏175

8.3.1 #define预处理指令175

8.3.2 带参数的#define预处理指令176

8.3.3 格式和对齐181

8.3.4 #字符串化运算符182

8.3.5 ##符号连接运算符182

8.3.6 #undef预处理指令184

8.4 条件编译指令184

8.4.1 #if预处理指令184

8.4.2 #endif预处理指令184

8.4.3 #if defined预处理指令185

8.4.4 #ifdef和#ifndef预处理指令186

8.4.5 #else预处理指令186

8.4.6 #elif预处理指令186

8.4.7 #error预处理指令187

8.5 其他预处理指令188

8.5.1 #line预处理指令188

8.5.2 #pragma预处理指令188

8.6 小结188

第9章 类与结构189

9.1 C++的类189

9.2 数据类型的属性189

9.2.1 数据表示189

9.2.2 实现190

9.2.3 行为190

9.2.4 接口190

9.3 用户定义的数据类型190

9.3.1 抽象190

9.3.2 对象是什么190

9.3.3 数据抽象和面向过程编程190

9.3.4 数据抽象和封装192

9.4 带有函数的结构192

9.4.1 向结构添加函数192

9.4.2 同一结构的多个实例194

9.4.3 具有相同名称函数的不同结构195

9.5 访问控制符197

9.6 是滞应该使用面向过程编程197

9.7 结构和类的比较198

9.8 联合198

9.9 小结198

第10章 函数模板199

10.1 函数模板基础知识199

10.2 数的定制201

10.3 利用模板进行排序204

10.4 小结206

第2部分 使用类207

第11章 C++类208

11.1 设计类208

11.1.1 对类进行声明208

11.1.2 类成员210

11.1.3 类成员的可见性210

11.1.4 类的数据成员210

11.1.5 初始化类对象210

11.1.6 类的成员函数211

11.1.7 面向对象的类的设计211

11.1.8 类对象的作用域212

11.1.9 内联函数212

11.2 构造函数214

11.2.1 具有默认参数的构造函数214

11.2.2 默认构造函数215

11.2.3 重载构造函数215

11.3 析构函数217

11.4 类的转换217

11.4.1 转换函数217

11.4.2 对类进行转换221

11.4.3 调用转换函数223

11.4.4 转换发生的情形224

11.4.5 显式构造函数227

11.4.6 表达式中的转换227

11.5 私有数据成员228

11.5.1 取值成员函数和赋值成员函数228

11.5.2 常量成员函数230

11.5.3 经过改进的成员转换函数230

11.6 友元231

11.6.1 友元类231

11.6.2 隐式构造函数233

11.6.3 预引用233

11.6.4 显式友元预引用234

11.6.5 友元函数235

11.6.6 匿名对象236

11.6.7 非类成员的友元函数237

11.7 析构函数238

11.8 重载赋值运算符函数240

11.9 this指针243

11.9.1 用this指针作为返回值243

11.9.2 在链表中使用this指针246

11.10 类对象数组248

11.10.1 类对象数组和默认构造函数249

11.10.2 类对象数组和析构函数251

11.11 静态成员252

11.11.1 静态数据成员252

11.11.2 静态成员函数254

11.11.3 公有静态成员256

11.12 类和堆256

11.12.1 构造函数和new运算符、析构函数和delete运算符256

11.12.2 堆和类数组257

11.12.3 在类内部重载new和delete运算符260

11.12.4 异常检测262

11.12.5 重载new和delete运算符函数中的异常处理262

11.12.6 重载new[]和delete[]运算符262

11.13 复制构造函数264

11.14 类中的引用267

11.15 构造函数的参数初始化表269

11.16 关于const修饰符的简单说明270

11.17 可变数据成员272

11.18 对类的源文件和目标文件的管理273

11.18.1 头文件中的类声明273

11.18.2 库中的类成员函数273

11.19 小结273

第12章 运算符重载274

12.1 重载运算符的时机274

12.2 重载运算符举例275

12.3 重载运算符的规则275

12.4 双目算术运算符276

12.5 类成员运算符函数276

12.6 非类成员运算符函数278

12.7 关系运算符280

12.8 其他赋值运算符282

12.9 自增运算符和自减运算符284

12.10 单目正和单目负运算符286

12.11 下标运算符287

12.12 成员指针运算符288

12.13 小结290

第13章 类继承292

13.1 继承292

13.2 进行继承的原因294

13.3 设计定制的数据抽象类294

13.3.1 基类295

13.3.2 旨在提高效率的设计297

13.3.3 单一继承300

13.3.4 派生类300

13.3.5 受保护成员300

13.3.6 派生成员和定制成员301

13.3.7 公有基类和私有基类301

13.3.8 基类和派生类的构造函数301

13.3.9 定制新的成员函数302

13.3.10 通过重定义基类成员函数进行定制302

13.3.11 编写程序303

13.3.12 用于基类和派生类的作用域运算符304

13.3.13 多个派生类305

13.3.14 第二个派生类305

13.3.15 使用基类和两个派生类307

13.3.16 派生类之间的关系308

13.3.17 从派生类派生出来的类308

13.4 问题域类层次结构的设计311

13.4.1 C++与纯面向对象的设计312

13.4.2 更多的数据抽象313

13.4.3 重载<<和>>运算符314

13.4.4 SSN和Money类316

13.4.5 包含头文件318

13.4.6 C++的标准字符串类319

13.5 Person:基类319

13.5.1 枚举数据类型322

13.5.2 虚函数322

13.5.3 抽象基类:纯虚函数322

13.5.4 两种数据显示方式322

13.6 派生类322

13.6.1 Employee类322

13.6.2 函数重定义324

13.6.3 WagedEmployee类324

13.6.4 SalariedEmployee类326

13.6.5 Contractor类327

13.6.6 构造目标代码库329

13.6.7 问题域类层次结构329

13.6.8 通过引用调用虚函数332

13.6.9 通过引用调用非虚函数333

13.6.10 调用重定义的虚函数333

13.6.11 没有被派生类重定义的虚函数333

13.6.12 虚析构函数333

13.6.13 应该将哪些成员函数定义为虚函数336

13.7 多态性336

13.8 小结337

第14章 多重继承338

14.1 多个基类338

14.1.1 多重继承中的构造函数的执行339

14.1.2 多重继承中的析构函数的执行339

14.2 细化资产系统设计339

14.3 对多重继承中的成员进行重定义341

14.4 多重继承中的二义性问题341

14.4.1 具有二义性的成员函数342

14.4.2 具有二义性的数据成员342

14.4.3 在设计时解决二义性问题342

14.4.4 不可避免的二义性问题343

14.5 虚基类344

14.6 实现所设计的类层次结构345

14.6.1 DisplayObject类345

14.6.2 Vehicle类345

14.6.3 Property类346

14.6.4 Asset类和Expense类347

14.6.5 Computer类和Pencils类349

14.6.6 CompanyCar类和LeaseCar类349

14.6.7 应用程序349

14.7 回顾350

14.8 小结351

第15章 类模板352

15.1 基础知识352

15.2 声明类模板的多个对象353

15.3 调用类模板的成员函数353

15.4 声明多个参数353

15.5 有界数组类模板356

15.6 何时使用类模板358

15.7 链表模板359

15.7.1 整型链表模板363

15.7.2 日期链表模板364

15.8 模板的定制365

15.8.1 类模板的定制366

15.8.2 模板成员函数的定制367

15.8.3 模板的部分定制368

15.9 默认的类模板参数370

15.10 小结371

第16章 面向对象程序设计372

16.1 基础知识372

16.2 过程化程序设计372

16.3 面向对象程序设计373

16.3.1 面向对象的程序373

16.3.2 对象374

16.3.3 抽象374

16.3.4 封装375

16.3.5 方法和消息376

16.3.6 成员函数378

16.3.7 继承378

16.3.8 类的关系379

16.3.9 多态性379

16.4 小结379

第3部分 标准C++库381

第17章 标准C++库简介382

17.1 std∷string类382

17.1.1 构造字符串382

17.1.2 对字符串进行赋值382

17.1.3 连接字符串383

17.1.4 字符串的下标383

17.1.5 比较字符串383

17.1.6 子串383

17.1.7 搜索字符串384

17.1.8 字符串操作384

17.2 输入/输出流384

17.2.1 流类385

17.2.2 缓冲输出385

17.2.3 格式化输出386

17.2.4 文件输入/输出394

17.3 std∷complex类396

17.4 标准模板库397

17.5 标准异常398

17.6 小结400

第18章 格式化iostream类和stringstream类401

18.1 格式化输出401

18.2 操纵算子、格式化标志和成员函数402

18.2.1 std∷ios∷width()函数402

18.2.2 std∷setw操纵算子403

18.2.3 std∷ios∷fill()函数404

18.2.4 输出对齐404

18.2.5 setprecision操纵算子405

18.2.6 科学记数法和定点记数法406

18.2.7 std∷ios∷setf()和std∷ios∷unsetf()函数407

18.2.8 格式化标志407

18.2.9 格式化操纵算子408

18.2.10 格式化函数408

18.3 小结410

第19章 文件输入/输出流411

19.1 文件流类的层次结构411

19.2 std∷ofstream类411

19.3 std∷ifstream类416

19.3.1 读取文件直至文件结束417

19.3.2 在文件中定位418

19.3.3 读取和写入流文件420

19.3.4 建立和解除文件与流的关联421

19.4 二进制文件与文本文件422

19.5 std∷fstream类422

19.6 小结423

第4部分 标准模板库425

第20章 标准模板库概述426

20.1 需要STL的原因426

20.2 STL程序设计模型426

20.2.1 序列427

20.2.2 容器适配器427

20.2.4 迭代器428

20.2.7 分配器429

20.2.5 算法429

20.3 小结430

21.2 向量类模板431

21.1 序列式容器概述431

第21章 序列431

21.2.1 插入向量元素433

21.2.2 删除向量元素435

21.2.3 比较向量437

21.2.4 向量的成员函数438

21.3 双端队列类模板439

21.3.1 向双端队列插入元素440

21.3.2 删除双端队列中的元素442

21.3.3 比较双端队列444

21.3.4 双端队列的成员函数445

21.4 链表类模板446

21.4.1 插入链表元素447

21.4.2 删除链表元素450

21.4.3 比较链表451

21.5 std∷stack容器适配器453

21.4.4 链表的成员函数453

21.6 std∷queue容器适配器455

21.7 std∷priority_queue容器适配器457

21.8 小结458

22.2 std∷set类模板459

22.1 关联式容器简介459

第22章 关联式容器459

22.2.1 向集合中插入元素460

22.2.2 从集合中删除元素461

22.2.3 在集合中查找元素463

22.2.4 对集合进行比较464

22.2.5 集合的成员函数465

22.3 std∷multiset类模板466

22.3.1 向多重集合中插入元素467

22.3.2 从多重集合中删除元素468

22.3.3 在多重集合中查找元素470

22.3.4 对多重集合进行比较471

22.3.5 多重集合的成员函数473

22.4 std∷map类模板474

22.4.1 向映射中插入元素475

22.4.2 从映射中删除元素477

22.4.3 在映射中查找元素478

22.4.4 对映射进行比较480

22.4.5 映射的成员函数481

22.5 std∷multimap类模板482

22.5.1 向多重映射中插入元素483

22.5.2 从多重映射中删除元素484

22.5.3 在多重映射中查找元素485

22.5.4 对多重映射进行比较487

22.5.5 多重映射的成员函数488

22.6.1 在位集合中对位进行操作489

22.6 std∷bitset类模板489

22.6.2 在位集合中测试位的状态491

22.6.3 对位集合进行比较492

22.7 用户定义的谓词494

22.6.4 位集合的成员函数494

22.8 小结497

23.2 非修正序列算法498

23.1 通用算法概述498

第23章 通用算法498

23.3 修正序列算法503

23.4 排序算法509

23.5 数值算法519

23.6 小结525

第24章 迭代器526

24.1 迭代器简介526

24.2 输入迭代器526

24.3 输出迭代器528

24.4 前向迭代器529

24.5 双向迭代器530

24.6 随机访问迭代器532

24.7 特殊用途的迭代器535

24.7.1 流迭代器535

24.7.2 迭代器适配器538

24.8 小结543

第25章 异常处理544

25.1 C语言中的异常处理544

25.2.1 try块546

25.2.2 catch异常处理模块546

25.2 C++语言中的异常处理546

25.2.3 throw语句547

25.2.4 try/throw/catch语句547

25.2.5 异常指定550

25.2.6 不可预见的异常551

25.2.7 catch-all异常处理模块551

25.2.8 从一个处理模块中抛出异常553

25.2.9 未经捕获的异常554

25.3 在抛出的异常中进行选择556

25.4 异常及未释放的资源558

25.5 一个改进的计算器程序558

25.6 小结562

第5部分 C++语言的高级主题563

第26章 名字空间564

26.1 名字空间简介564

26.2 名字空间的成员565

26.3 using namespace语句565

26.4 定义名字空间567

26.5 嵌套名字空间569

26.6 无名名字空间570

26.7 名字空间的别名570

26.8 小结572

27.1 新风格类型转换573

27.1.1 dynamic_cast573

第27章 新风格类型转换和运行时类型信息573

27.1.2 static_cast577

27.1.3 reinterpret_cast578

27.1.4 const_cast579

27.2 运行时类型信息581

27.3 小结582

第28章 区域表示583

28.1 国际化元素583

28.2.2 默认区域表示与全局区域表示584

28.2.1 标准侧面584

28.3 创建区域表示对象584

28.2 std∷locale类584

28.4 创建混合区域表示587

28.5 流与区域表示588

28.6 对侧面进行操作589

28.7 小结591

附录 关于光盘592

热门推荐