图书介绍

C++设计新思维 泛型编程与设计模式之应用PDF|Epub|txt|kindle电子书版本网盘下载

C++设计新思维 泛型编程与设计模式之应用
  • (美)Andrei Alexandrescu著;侯捷,于春景译 著
  • 出版社: 武汉:华中科技大学出版社
  • ISBN:7560929060
  • 出版时间:2003
  • 标注页数:323页
  • 文件大小:13MB
  • 文件页数:346页
  • 主题词:C++

PDF下载


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

下载说明

C++设计新思维 泛型编程与设计模式之应用PDF格式电子书版下载

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

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

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

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

图书目录

第一篇 技术(Techniques)1

第一章 基于Policy的Class设计(Policy-Based Class Design)3

1.1 软件设计的多样性(Multiplicity)3

1.2 全功能型(Do-At-All)接口的失败4

1.3 多重继承(Multiple Inheritance)是救世主?5

1.4 Templates带来曙光6

1.5 Policies和Policy Classes7

1.7 Policy Classes的析构函数(Destructors)12

1.6 更丰富的Policies12

1.8 通过不完全具现化而获得的选择性机能13

1.9 结合Policy Calsses14

1.10 以Policy Calsses定制结构16

1.11 Policy的兼容性17

1.12 将一个Calss分解为一堆Policies19

1.13 摘要20

第二章 技术(Techniques)23

2.1 编译期(Compile-Time)Assertions23

2.2 Partial Template Specialization(模板偏特化)26

2.3 局部类(Local Classes)28

2.4 常整数映射为型别(Mapping Integral Constants to Types)29

2.5 型别对型别的映射(Type-to-Type Mapping)31

2.6 型别选择(Type Selection)33

2.7 编译期间侦测可转换性(Convertibility)和继承性(Inheritance)34

2.8 type-info的一个外覆类(Wrapper)37

2.9 NullType和EmptyType39

2.10 Type Traits40

2.11 摘要46

3.1 Typelists的必要性49

第三章 Typelists49

3.2 定义Typelists51

3.3 将Typelist的生成线性化(linearizing)52

3.4 计算长度53

3.5 间奏曲54

3.6 索引式访问(Indexed Access)55

3.7 查找Typelists56

3.8 附加元素至Typelists57

3.9 移除Typelists中的某个元素58

3.10移除重复元素(Erasing Duplicates)59

3.11 取代Typelists中的某个元素60

3.12 为Typelists局部更换次序(Partially Ordering)61

3.13 运用Typelists自动产生Classes64

3.14 摘要74

3.15 Typelist要点概览75

第四章 小型对象分配技术(Small-Object Allocation)77

4.1 缺省的Free Store分配器78

4.2 内存分配器的工作方式78

4.3 小型对象分配器(Small-Object Allocator)80

4.4 Chunks大块内存81

4.5 大小一致(Fixed-Size)的分配器84

4.6 SmallObj Allocator Class87

4.7 帽子下的戏法89

4.8 简单,复杂,终究还是简单92

4.9 使用细节93

4.10 摘要94

4.11 小型对象分配器(Small-Object Allocator)要点概览94

第二篇 组件(Components)97

第五章 泛化仿函数(Generalized Functors)99

5.1 设计模式100

5.2 真实世界中的102

5.3 C++中的可调用体(Callable Entities)103

5.4 Functor Class Template骨干104

5.5 实现“转发式”(Forwarding)Functor::operator()108

5.6 处理Pointer to member function仿函数110

5.7 做一个,送一个112

5.8 引数和返回型别的转换114

5.9 处理Pointer to member function(成员函数指针)115

5.10 绑定(Binding)119

5.12 现实世界中的问题之一:转发函数的成本122

5.11 将请求串接起来(Chaining Requests)122

5.13 现实世界中的问题之二:分配124

5.14 通过Functor实现Undo和Redo125

5.15 摘要126

5.16 Functor要点概览126

第六章 Singletons(单件)实作技术129

6.1 静态数据+静态函数!=Singleton130

6.2 用以支持的一些C++基本手法131

6.3 实施“Singleton的唯一性”132

6.4 摧毁Singleton133

6.5 Dead(失效的)Reference问题135

6.6 解决Dead Reference问题(一):Phoenix Singleton137

6.7 解决Dead Reference问题(二):带寿命的Singletons139

6.8 实现“带寿命的Singleton”142

6.9 生活在多线程世界145

6.10 将一切组装起来148

6.11 使用SingletonHolder153

6.12 摘要155

6.13 SingletonHolder Class Template要点概览155

7.1 Smart Pointers基础157

第七章 Smart Pointers(智能指针)157

7.2 交易158

7.3 Smart Pointers的存储160

7.4 Smart Pointer的成员函数161

7.5 拥有权(Ownership)管理策略163

7.6 Address-of(取址)操作符170

7.7 隐式转换(Implicit Conversion)至原始指针型别171

7.8 相等性(Equality)和不等性(Inequality)173

7.9 次序比较(Ordering Comparisons)178

7.10 检测及错误报告(Checking and Error Reporting)181

7.11 Smart Pointers to const和const Smart Pointers182

7.12 Arrays183

7.13 Smart Pointers和多线程(Multithreading)184

7.14 将一切组装起来187

7.15 摘要194

7.16 SmartPtr要点概览194

第八章 Object Factories(对象工厂)197

8.1 为什么需要Object Factories198

8.2 Object Factories in C++:Classes和Objects200

8.3 实现一个Object Factory201

8.4 型别标识符(Type Identifiers)206

8.5 泛化(Generalization)207

8.6 细节琐务210

8.7 Clone Factories(克隆工厂、翻制工厂、复制工厂)211

8.8 通过其他泛型组件来使用Clone Factories215

8.9 摘要216

8.10 Factory Class Template要点概览216

8.11 Clone Factory Class Template要点概览217

第九章 Abstract Factory(抽象工厂)219

9.1 Abstract Factory扮演的体系结构角色(Architectural role)219

9.2 一个泛化的Abstract Factory接口223

9.3 实作出Abstract Factory226

9.4 一个Prototype-Based Abstract Factory实作品228

9.5 摘要233

9.6 Abstract Factory和ConcreteFactory要点概览233

第十章 Visitor(访问者、视察者)235

10.1 Visitor基本原理235

10.2 重载(Overloading):Catch-All函数242

10.3 一份更加精练的实作品:Acyclic Visitor243

10.4 Visitor之泛型实作248

10.5 再论“Cyclic”Visitor255

10.6 变化手段258

10.7 摘要260

10.8 Visitor泛型组件要点概览261

第十一章 Multimethods263

11.1 什么是Multimethods?264

11.2 何时需要Multimethods?264

11.3 Double Switch-on-Type:暴力法?265

11.4 将暴力法自动化268

11.5暴力式Dispatcher的对称性273

11.6 对数型(Logarithmic)Double Dispatcher276

11.7 FnDispatcher和对称性282

11.8 Double Dispatch(双重分派)至仿函数(Functors)282

11.9 引数的转型:static_cast和dynamic_cast?285

11.10 常数时间的:Multimethods原始速度(Raw Speed)290

11.11 将BasicDispatcher和BasicFastDispatcher当做Policies293

11.12 展望294

11.13 摘要296

11.14 Double Dispatcher要点概览297

附录 一个超迷你的多线程程序库(A Minimalist Multithreading Library)301

A.1 多线程的反思302

A.2 Loki的做法303

A.3 整数型别上的原子操作(Atomic Operations)303

A.4 Mutexes(互斥体)305

A.5 面向对象编程中的锁定语义(Atomic Operations)306

A.6 可有可无的(Optional)volatile饰词308

A.7 Semaphores,Events和其他好东西309

A.8 摘要309

参考书目(Bibliography)311

索引(Index)313

热门推荐