图书介绍

C++程序设计语言 特别版PDF|Epub|txt|kindle电子书版本下载

C++程序设计语言 特别版
  • (美)BJARNESTROUSTRUP著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111298854
  • 出版时间:2010
  • 标注页数:906页
  • 文件大小:58MB
  • 文件页数:931页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C++程序设计语言 特别版PDF格式电子书版下载

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

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

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

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

图书目录

导论3

第1章 致读者3

1.1本书的结构3

1.1.1例子和参考4

1.1.2练习5

1.1.3有关实现的注记5

1.2学习C++6

1.3 C++的设计7

1.3.1效率和结构8

1.3.2哲学注记9

1.4历史注记9

1.5 C++的使用11

1.6 C和C++12

1.6.1给C程序员的建议13

1.6.2给C++程序员的建议13

1.7有关在C++里编程的思考14

1.8忠告15

1.9参考文献16

第2章 C++概览19

2.1为什么是C++19

2.2程序设计范型19

2.3过程式程序设计20

2.3.1变量和算术21

2.3.2检测和循环22

2.3.3指针和数组23

2.4模块程序设计23

2.4.1分别编译24

2.4.2异常处理25

2.5数据抽象26

2.5.1定义类型的模块27

2.5.2用户定义类型28

2.5.3具体类型29

2.5.4抽象类型31

2.5.5虚函数33

2.6面向对象的程序设计33

2.6.1具体类型的问题33

2.6.2类层次结构34

2.7通用型程序设计36

2.7.1容器36

2.7.2通用型算法37

2.8附言38

2.9忠告39

第3章 标准库概览40

3.1引言40

3.2 Hello, world!40

3.3标准库名字空间41

3.4输出41

3.5字符串42

3.5.1 C风格的字符串44

3.6输入44

3.7容器46

3.7.1向量——vector46

3.7.2范围检查47

3.7.3表——list48

3.7.4映射——map49

3.7.5标准容器49

3.8算法50

3.8.1迭代器的使用51

3.8.2迭代器类型52

3.8.3迭代器和I/O53

3.8.4遍历和谓词54

3.8.5使用成员函数的算法56

3.8.6标准库算法56

3.9数学57

3.9.1复数57

3.9.2向量算术57

3.9.3基本数值支持58

3.10标准库功能58

3.11忠告58

第一部分 基本功能63

第4章 类型和声明63

4.1类型63

4.1.1基本类型64

4.2布尔量64

4.3字符类型65

4.3.1字符文字量66

4.4整数类型66

4.4.1整数文字量66

4.5浮点类型67

4.5.1浮点文字量67

4.6大小68

4.7void69

4.8枚举69

4.9声明71

4.9.1声明的结构72

4.9.2声明多个名字73

4.9.3名字73

4.9.4作用域74

4.9.5初始化75

4.9.6对象和左值76

4.9.7 typedef76

4.10忠告77

4.11练习77

第5章 指针、数组和结构79

5.1指针79

5.1.1零80

5.2数组80

5.2.1数组初始化80

5.2.2字符串文字量81

5.3到数组的指针83

5.3.1在数组里漫游83

5.4常量85

5.4.1指针和常量87

5.5引用88

5.6指向void的指针90

5.7结构91

5.7.1类型等价94

5.8忠告94

5.9练习94

第6章 表达式和语句96

6.1一个桌面计算器96

6.1.1分析器96

6.1.2输入函数100

6.1.3低级输入102

6.1.4错误处理103

6.1.5驱动程序104

6.1.6头文件104

6.1.7命令行参数105

6.1.8有关风格的注记106

6.2运算符概览107

6.2.1结果109

6.2.2求值顺序110

6.2.3运算符优先级110

6.2.4按位逻辑运算符111

6.2.5增量和减量112

6.2.6自由存储113

6.2.7显式类型转换116

6.2.8构造函数117

6.3语句概览118

6.3.1声明作为语句119

6.3.2选择语句119

6.3.3迭代语句122

6.3.4 goto123

6.4注释和缩进编排123

6.5忠告125

6.6练习125

第7章 函数128

7.1函数声明128

7.1.1函数定义128

7.1.2静态变量129

7.2参数传递130

7.2.1数组参数131

7.3返回值132

7.4重载函数名133

7.4.1重载和返回类型135

7.4.2重载与作用域135

7.4.3手工的歧义性解析135

7.4.4多参数的解析136

7.5默认参数137

7.6未确定数目的参数138

7.7指向函数的指针139

7.8宏143

7.8.1条件编译145

7.9忠告145

7.10练习146

第8章 名字空间和异常148

8.1模块化和界面148

8.2名字空间150

8.2.1带限定词的名字151

8.2.2使用声明152

8.2.3使用指令153

8.2.4多重界面154

8.2.5避免名字冲突157

8.2.6名字查找159

8.2.7名字空间别名159

8.2.8名字空间组合160

8.2.9名字空问和老代码163

8.3异常166

8.3.1抛出和捕捉167

8.3.2异常的辨识168

8.3.3在计算器中的异常169

8.4忠告173

8.5练习173

第9章 源文件和程序175

9.1分别编译175

9.2连接176

9.2.1头文件178

9.2.2标准库头文件179

9.2.3单一定义规则180

9.2.4与非C++代码的连接182

9.2.5连接与指向函数的指针184

9.3使用头文件184

9.3.1单一头文件184

9.3.2多个头文件187

9.3.3包含保护符191

9.4程序192

9.4.1非局部变量的初始化192

9.5忠告194

9.6练习194

第二部分 抽象机制199

第10章 类199

10.1引言199

10.2类199

10.2.1成员函数200

10.2.2访问控制201

10.2.3构造函数202

10.2.4静态成员203

10.2.5类对象的复制204

10.2.6常量成员函数205

10.2.7自引用205

10.2.8结构和类208

10.2.9在类内部的函数定义210

10.3高效的用户定义类型210

10.3.1成员函数212

10.3.2协助函数214

10.3.3重载的运算符215

10.3.4具体类型的意义215

10.4对象216

10.4.1析构函数216

10.4.2默认构造函数217

10.4.3构造和析构218

10.4.4局部变量218

10.4.5自由存储220

10.4.6类对象作为成员221

10.4.7数组223

10.4.8局部静态存储224

10.4.9非局部存储225

10.4.10临时对象226

10.4.11对象的放置228

10.4.12联合229

10.5忠告230

10.6练习230

第11章 运算符重载233

11.1引言233

11.2运算符函数234

11.2.1二元和一元运算符235

11.2.2运算符的预定义意义236

11.2.3运算符和用户定义类型236

11.2.4名字空问里的运算符237

11.3一个复数类型238

11.3.1成员运算符和非成员运算符238

11.3.2混合模式算术239

11.3.3初始化240

11.3.4复制241

11.3.5构造函数和转换242

11.3.6文字量243

11.3.7另一些成员函数243

11.3.8协助函数244

11.4转换运算符245

11.4.1歧义性246

11.5友元248

11.5.1友元的寻找249

11.5.2友元和成员250

11.6大型对象251

11.7基本运算符253

11.7.1显式构造函数253

11.8下标255

11.9函数调用256

11.10间接257

11.11增量和减量259

11.12一个字符串类260

11.13忠告265

11.14练习265

第12章 派生类268

12.1引言268

12.2派生类269

12.2.1成员函数271

12.2.2构造函数和析构函数272

12.2.3复制273

12.2.4类层次结构273

12.2.5类型域274

12.2.6虚函数276

12.3抽象类278

12.4类层次结构的设计280

12.4.1一个传统的层次结构280

12.4.2抽象类283

12.4.3其他实现方式285

12.4.4对象创建的局部化287

12.5类层次结构和抽象类289

12.6忠告289

12.7练习289

第13章 模板292

13.1引言292

13.2一个简单的String模板293

13.2.1定义一个模板294

13.2.2模板实例化295

13.2.3模板参数296

13.2.4类型等价296

13.2.5类型检查297

13.3函数模板298

13.3.1函数模板的参数299

13.3.2函数模板的重载300

13.4用模板参数描述策略302

13.4.1默认模板参数303

13.5专门化304

13.5.1专门化的顺序306

13.5.2模板函数的专门化307

13.6派生和模板308

13.6.1参数化和继承309

13.6.2成员模板310

13.6.3继承关系311

13.7源代码组织312

13.8忠告314

13.9练习314

第14章 异常处理316

14.1错误处理316

14.1.1关于异常的其他观点318

14.2异常的结组318

14.2.1派生的异常319

14.2.2多个异常的组合321

14.3捕捉异常321

14.3.1重新抛出322

14.3.2捕捉所有异常322

14.4资源管理324

14.4.1构造函数和析构函数的使用325

14.4.2 auto_ptr326

14.4.3告诫328

14.4.4异常和new328

14.4.5资源耗尽329

14.4.6构造函数里的异常331

14.4.7析构函数里的异常332

14.5不是错误的异常333

14.6异常的描述334

14.6.1对异常描述的检查335

14.6.2未预期的异常336

14.6.3异常的映射336

14.7未捕捉的异常338

14.8异常和效率339

14.9处理错误的其他方式340

14.10标准异常342

14.11忠告344

14.12练习344

第15章 类层次结构346

15.1引言和概述346

15.2多重继承346

15.2.1歧义性解析348

15.2.2继承和使用声明349

15.2.3重复的基类350

15.2.4虚基类352

15.2.5使用多重继承354

15.3访问控制357

15.3.1保护成员359

15.3.2对基类的访问360

15.4运行时类型信息361

15.4.1 dynamic_cast363

15.4.2在类层次结构中漫游365

15.4.3类对象的构造与析构367

15.4.4 typeid和扩展的类型信息368

15.4.5 RTTI的使用和误用370

15.5指向成员的指针371

15.5.1基类和派生类373

15.6自由存储374

15.6.1数组分配375

15.6.2虚构造函数376

15.7忠告377

15.8练习377

第三部分 标准库381

第16章 库组织和容器381

16.1标准库的设计381

16.1.1设计约束382

16.1.2标准库组织383

16.1.3语言支持385

16.2容器设计386

16.2.1专门化的容器和迭代器386

16.2.2有基类的容器388

16.2.3 STL容器391

16.3向量392

16.3.1类型393

16.3.2迭代器394

16.3.3元素访问395

16.3.4构造函数396

16.3.5堆栈操作399

16.3.6表操作401

16.3.7元素定位403

16.3.8大小和容量404

16.3.9其他成员函数406

16.3.10协助函数406

16.3.11 vector<bool>407

16.4忠告407

16.5练习408

第17章 标准容器409

17.1标准容器409

17.1.1操作综述409

17.1.2容器综述412

17.1.3表示413

17.1.4对元素的要求413

17.2序列416

17.2.1向量——vector416

17.2.2表——list416

17.2.3双端队列——deque420

17.3序列适配器421

17.3.1堆栈——stack421

17.3.2队列——queue422

17.3.3优先队列——priority_queue423

17.4关联容器425

17.4.1映射——map425

17.4.2多重映射——multimap433

17.4.3集合——set434

17.4.4多重集合——multiset435

17.5拟容器435

17.5.1串——string435

17.5.2值向量——valarray435

17.5.3位集合——bitset435

17.5.4内部数组439

17.6定义新容器439

17.6.1散列映射——hash_map440

17.6.2表示和构造441

17.6.3其他散列关联容器446

17.7忠告446

17.8练习446

第18章 算法和函数对象449

18.1引言449

18.2标准库算法综述449

18.3序列和容器453

18.3.1输入序列453

18.4函数对象454

18.4.1函数对象的基类456

18.4.2谓词456

18.4.3算术函数对象458

18.4.4约束器、适配器和否定器458

18.5非修改性序列算法463

18.5.1对每个做——for_each463

18.5.2查找族函数464

18.5.3计数465

18.5.4相等和不匹配466

18.5.5搜索467

18.6修改性序列算法467

18.6.1复制468

18.6.2变换469

18.6.3惟一化471

18.6.4取代473

18.6.5删除474

18.6.6填充和生成474

18.6.7反转和旋转475

18.6.8交换476

18.7排序的序列476

18.7.1排序476

18.7.2二分检索477

18.7.3归并478

18.7.4划分479

18.7.5序列上的集合运算479

18.8堆480

18.9最小和最大481

18.10排列482

18.11 C风格算法482

18.12忠告483

18.13练习483

第19章 迭代器和分配器485

19.1引言485

19.2迭代器和序列485

19.2.1迭代器的操作486

19.2.2迭代器特征类——iterator_lraits487

19.2.3迭代器类别488

19.2.4插入器490

19.2.5反向迭代器491

19.2.6流迭代器492

19.3带检查迭代器495

19.3.1异常、容器和算法499

19.4分配器500

19.4.1标准分配器500

19.4.2一个用户定义分配器503

19.4.3广义的分配器505

19.4.4未初始化的存储506

19.4.5动态存储508

19.4.6 C风格的分配509

19.5忠告510

19.6练习510

第20章 串511

20.1引言511

20.2字符511

20.2.1字符特征类——char _traits512

20.3基础串类——basic string513

20.3.1类型514

20.3.2迭代器515

20.3.3元素访问516

20.3.4构造函数516

20.3.5错误517

20.3.6赋值518

20.3.7到C风格字符串的转换519

20.3.8比较521

20.3.9插入522

20.3.10拼接523

20.3.11查找524

20.3.12替换525

20.3.13子串526

20.3.14大小和容量527

20.3.15 I/O操作527

20.3.16交换528

20.4 C标准库528

20.4.1 C风格字符串528

20.4.2字符分类530

20.5忠告530

20.6练习531

第21章 流533

21.1引言533

21.2输出534

21.2.1输出流535

21.2.2内部类型的输出536

21.2.3用户定义类型的输出538

21.3输入540

21.3.1输入流540

21.3.2内部类型的输入540

21.3.3流状态542

21.3.4字符的输入544

21.3.5用户定义类型的输入546

21.3.6异常547

21.3.7流的联结548

21.3.8哨位549

21.4格式化550

21.4.1格式状态550

21.4.2整数输出552

21.4.3浮点数输出552

21.4.4输出域553

21.4.5域的调整555

21.4.6操控符555

21.5文件流与字符串流560

21.5.1文件流561

21.5.2流的关闭562

21.5.3字符串流563

21.6缓冲564

21.6.1输出流和缓冲区565

21.6.2输入流和缓冲区566

21.6.3流和缓冲区567

21.6.4流缓冲区567

21.7现场571

21.7.1流回调572

21.8 C输入/输出573

21.9忠告575

21.10练习576

第22章 数值578

22.1引言578

22.2数值的限制578

22.2.1表示限制的宏580

22.3标准数学函数580

22.4向量算术582

22.4.1 valarray的构造582

22.4.2 valarray的下标和赋值583

22.4.3成员操作584

22.4.4非成员函数586

22.4.5切割587

22.4.6切割数组——slice_ array589

22.4.7临时量、复制和循环593

22.4.8广义切割595

22.4.9屏蔽596

22.4.10间接数组——indirect array596

22.5复数算术597

22.6通用数值算法599

22.6.1累积——accumulate599

22.6.2内积——inner_product600

22.6.3增量变化600

22.7随机数602

22.8忠告603

22.9练习603

第四部分 用C+做设计607

第23章 开发和设计607

23.1概述607

23.2引言607

23.3目的与手段609

23.4开发过程611

23.4.1开发循环613

23.4.2设计目标615

23.4.3设计步骤616

23.4.4试验和分析623

23.4.5测试625

23.4.6软件维护625

23.4.7效率626

23.5管理626

23.5.1重用627

23.5.2规模628

23.5.3个人629

23.5.4混成设计630

23.6带标注的参考文献631

23.7忠告633

第24章 设计和编程635

24.1概述635

24.2设计和程序设计语言635

24.2.1忽视类637

24.2.2忽视继承638

24.2.3忽视静态类型检查638

24.2.4忽视程序设计641

24.2.5排他性地使用类层次结构642

24.3类643

24.3.1类表示什么643

24.3.2类层次结构644

24.3.3包容关系648

24.3.4包容和继承649

24.3.5使用关系653

24.3.6编入程序里的关系654

24.3.7类内的关系656

24.4组件661

24.4.1模板663

24.4.2界面和实现665

24.4.3肥大的界面667

24.5忠告668

第25章 类的作用670

25.1类的种类670

25.2具体类型672

25.2.1具体类型的重用672

25.3抽象类型674

25.4结点676

25.4.1修改界面677

25.5动作680

25.6界面类681

25.6.1调整界面683

25.7句柄类684

25.7.1句柄上的操作687

25.8应用框架688

25.9忠告689

25.10练习690

附录和索引695

附录A语法695

附录B兼容性713

附录C技术细节724

附录D现场759

附录E标准库的异常时安全性815

索引845

热门推荐