图书介绍

C++TEMPLATES 中文版PDF|Epub|txt|kindle电子书版本网盘下载

C++TEMPLATES 中文版
  • (美)DAVID VANDEVOORDE NICOLAI M.JOSUTTIS 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115171818
  • 出版时间:2008
  • 标注页数:497页
  • 文件大小:19MB
  • 文件页数:517页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C++TEMPLATES 中文版PDF格式电子书版下载

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

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

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

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

图书目录

第1章 关于本章1

1.1 阅读本书所需具备的知识2

1.2 本书的整体结构2

1.3 如何阅读本书2

1.4 关于编程风格的一些说明3

1.5 标准和现实5

1.6 代码例子和更多信息5

1.7 反馈5

第1部分 基础7

第2章 函数模板9

2.1 初探函数模板9

2.1.1 定义模板9

2.1.2 使用模板10

2.2 实参的演绎(deduction)12

2.3 模板参数13

2.4 重载函数模板15

2.5 小结19

第3章 类模板21

3.1 类模板Stack的实现21

3.1.1 类模板的声明22

3.1.2 成员函数的实现23

3.2 类模板Stack的使用25

3.3 类模板的特化27

3.4 局部特化29

3.5 缺省模板实参30

3.6 小结32

第4章 非类型模板参数33

4.1 非类型的类模板参数33

4.2 非类型的函数模板参数36

4.3 非类型模板参数的限制37

4.4 小结38

第5章 技巧性基础知识39

5.1 关键字typename39

5.2 使用this->41

5.3 成员模板42

5.4 模板的模板参数45

5.5 零初始化51

5.6 使用字符串作为函数模板的实参52

5.7 小结55

第6章 模板实战57

6.1 包含模型57

6.1.1 链接器错误57

6.1.2 头文件中的模板59

6.2 显式实例化60

6.2.1 显式实例化的例子61

6.2.2 整合包含模型和显式实例化62

6.3 分离模型63

6.3.1 关键字export63

6.3.2 分离模型的限制65

6.3.3 为分离模型做好准备66

6.4 模板和内联67

6.5 预编译头文件68

6.6 调试模板70

6.6.1 理解长段的错误信息71

6.6.2 浅式实例化72

6.6.3 长符号串75

6.6.4 跟踪程序75

6.6.5 oracles79

6.6.6 archetypes80

6.7 本章后记80

6.8 小结81

第7章 模板术语83

7.1 “类模板”还是“模板类”83

7.2 实例化和特化84

7.3 声明和定义85

7.4 一处定义原则86

7.5 模板实参和模板参数86

第2部分 深入模板89

第8章 深入模板基础91

8.1 参数化声明91

8.1.1 虚成员函数94

8.1.2 模板的链接95

8.1.3 基本模板96

8.2 模板参数96

8.2.1 类型参数97

8.2.2 非类型参数97

8.2.3 模板的模板参数98

8.2.4 缺省模板实参99

8.3 模板实参100

8.3.1 函数模板实参101

8.3.2 类型实参103

8.3.3 非类型实参105

8.3.4 模板的模板实参107

8.3.5 实参的等价性109

8.4 友元109

8.4.1 友元函数110

8.4.2 友元模板113

8.5 本章后记113

第9章 模板中的名称115

9.1 名称的分类115

9.2 名称查找117

9.2.1 Argument-Dependent Lookup(ADL)119

9.2.2 友元名称插入121

9.2.3 插入式类名称121

9.3 解析模板123

9.3.1 非模板中的上下文相关性123

9.3.2 依赖型类型名称125

9.3.3 依赖型模板名称127

9.3.4 using-declaration中的依赖型名称129

9.3.5 ADL和显式模板实参130

9.4 派生和类模板131

9.4.1 非依赖型基类131

9.4.2 依赖型基类132

9.5 本章后记134

第10章 实例化137

10.1 On-Demand实例化137

10.2 延迟实例化139

10.3 C++的实例化模型142

10.3.1 两阶段查找142

10.3.2 POI142

10.3.3 包含模型与分离模型145

10.3.4 跨翻译单元查找146

10.3.5 例子147

10.4 几种实现方案149

10.4.1 贪婪实例化151

10.4.2 询问实例化152

10.4.3 迭代实例化153

10.5 显式实例化155

10.6 本章后记159

第11章 模板实参演译163

11.1 演绎的过程163

11.2 演绎的上下文165

11.3 特殊的演绎情况167

11.4 可接受的实参转型168

11.5 类模板参数169

11.6 缺省调用实参169

11.7 Barton-Nackman方法170

11.8 本章后记172

第12章 特化与重载175

12.1 当泛型代码不再适用的时候175

12.1.1 透明自定义176

12.1.2 语义的透明性177

12.2 重载函数模板178

12.2.1 签名179

12.2.2 重载的函数模板的局部排序182

12.2.3 正式的排序原则183

12.2.4 模板和非模板185

12.3 显式特化185

12.3.1 全局的类模板特化186

12.3.2 全局的函数模板特化189

12.3.3 全局成员特化191

12.4 局部的类模板特化194

12.5 本章后记197

第13章 未来的方向199

13.1 尖括号Hack199

13.2 放松typename的原则200

13.3 缺省函数模板实参201

13.4 字符串文字和浮点型模板实参202

13.5 放松模板的模板参数的匹配204

13.6 typedef模板206

13.7 函数模板的局部特化207

13.8 typeof运算符208

13.9 命名模板实参210

13.10 静态属性211

13.11 客户端的实例化诊断信息212

13.12 重载类模板214

13.13 List参数215

13.14 布局控制217

13.15 初始化器的演绎218

13.16 函数表达式219

13.17 本章后记221

第3部分 模板与设计223

第14章 模板的多态威力225

14.1 动多态225

14.2 静多态228

14.3 动多态和静多态231

14.3.1 术语231

14.3.2 优点和缺点232

14.3.3 组合这两种多态232

14.4 新形式的设计模板233

14.5 泛型程序设计234

14.6 本章后记236

第15章 trait与policy类239

15.1 一个实例:累加一个序列239

15.1.1 fixed traits240

15.1.2 value trait243

15.1.3 参数化trait247

15.1.4 policy和policy类249

15.1.5 trait和policy:区别在何处251

15.1.6 成员模板和模板的模板参数252

15.1.7 组合多个policie和/或trait254

15.1.8 运用普通的迭代器进行累积255

15.2 类型函数256

15.2.1 确定元素的类型257

15.2.2 确定class类型259

15.2.3 引用和限定符261

15.2.4 promotion trait264

15.3 policy trait267

15.3.1 只读的参数类型268

15.3.2 拷贝、交换和移动271

15.4 本章后记275

第16章 模板与继承277

16.1 命名模板参数277

16.2 空基类优化281

16.2.1 布局原则281

16.2.2 成员作基类284

16.3 奇特的递归模板模式286

16.4 参数化虚拟性289

16.5 本章后记290

第17章 metaprogram293

17.1 metaprogram的第一个实例293

17.2 枚举值和静态常量295

17.3 第2个例子:计算平方根297

17.4 使用归纳变量301

17.5 计算完整性304

17.6 递归实例化和递归模板实参304

17.7 使用metaprogram来展开循环306

17.8 本章后记309

第18章 表示式模板313

18.1 临时变量和分割循环314

18.2 在模板实参中编码表达式319

18.2.1 表达式模板的操作数320

18.2.2 Array类型323

18.2.3 运算符325

18.2.4 回顾327

18.2.5 表达式模板赋值329

18.3 表达式模板的性能与约束330

18.4 本章后记331

第4部分 高级应用程序335

第19章 类型区分337

19.1 辨别基本类型337

19.2 辨别组合类型340

19.3 辨别函数类型342

19.4 运用重载解析辨别枚举类型346

19.5 辨别class类型348

19.6 辨别所有类型的函数模板349

19.7 本章后记352

第20章 智能指针355

20.1 holder和trule355

20.1.1 安全处理异常356

20.1.2 holder358

20.1.3 作为成员的holder360

20.1.4 资源获取于初始化362

20.1.5 holder的局限363

20.1.6 复制holder364

20.1.7 跨函数调用来复制holder365

20.1.8 trule366

20.2 引用记数368

20.2.1 计数器在什么地方370

20.2.2 并发访问计数器370

20.2.3 析构和释放371

20.2.4 CountingPtr模板372

20.2.5 一个简单的非侵入式计数器375

20.2.6 一个简单的侵入式计数器模板377

20.2.7 常数性378

20.2.8 隐式转型379

20.2.9 比较381

20.3 本章后记383

第21章 tuple385

21.1 duo385

21.2 可递归duo390

21.2.1 域的个数390

21.2.2 域的类型392

21.2.3 域的值393

21.3 tuple构造398

21.4 本章后记403

第22章 函数对象和回调405

22.1 直接调用、间接调用与内联调用406

22.2 函数指针与函数引用409

22.3 成员函数指针411

22.4 class类型的仿函数414

22.4.1 class类型仿函数的第1个实例414

22.4.2 class类型仿函数的类型416

22.5 指定仿函数417

22.5.1 作为模板类型实参的仿函数417

22.5.2 作为函数调用实参的仿函数418

22.5.3 结合函数调用参数和模板类型参数419

22.5.4 作为非类型模板实参的仿函数420

22.5.5 函数指针的封装421

22.6 内省423

22.6.1 分析一个仿函数的类型424

22.6.2 访问参数的类型425

22.6.3 封装函数指针426

22.7 函数对象组合431

22.7.1 简单的组合432

22.7.2 混合类型的组合436

22.7.3 减少参数的个数440

22.8 值绑定443

22.8.1 选择绑定的目标444

22.8.2 绑定签名446

22.8.3 实参选择447

22.8.4 辅助函数453

22.9 仿函数操作:一个完整的实现455

22.10 本章后记457

附录A 一处定义原则459

A.1 翻译单元459

A.2 声明和定义460

A.3 一处定义原则的细节461

A.3.1 程序的一处定义约束461

A.3.2 翻译单元的一处定义约束463

A.3.3 跨翻译单元的等价性约束465

附录B 重载解析471

B.1 何时应用重载解析472

B.2 简化过的重载解析472

B.2.1 成员函数的隐含实参474

B.2.2 细化完美匹配476

B.3 重载的细节477

B.3.1 非模板优先477

B.3.2 转型序列477

B.3.3 指针的转型478

B.3.4 仿函数和代理函数480

B.3.5 其他的重载情况481

参考资料483

术语表487

热门推荐