c++学习书籍推荐《C++设计新思维》下载
百度云及其他网盘下载地址:点我
译序by 侯捷 i
译序by 於春景 iii
目录 v
序言by scott meyers xi
序言by john vlissides xv
前言 xvii
致谢 xxi
第一篇 技术(techniques) 1
第1章 基于policy的class设计(policy-based class design) 3
1.1 软件设计的多样性(multiplicity) 3
1.2 全功能型(do-it-all)接口的失败 4
1.3 多重继承(multiple inheritance)是救世主? 5
1.4 templates带来曙光 6
1.5 policies和policy classes 7
1.6 更丰富的policies 12
1.7 policy classes的析构函数(destructors) 12
1.8 通过不完全具现化(incomplete instantiation)而获得的选择性机能(optional functionality) 13
1.9 结合policy classes 14
. 1.10 以policy classes定制结构 16
1.11 policies的兼容性 17
1.12 将一个class分解为一堆policies 19
1.13 摘要 20
第2章 技术(techniques) 23
2.1 编译期(compile-time)assertions 23
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和emptytype 39
2.10 type traits 40
2.11 摘要 46
第3章 typelists 49
3.1 typelists的必要性 49
3.2 定义typelists 51
3.3 将typelist的生成线性化(linearizing) 52
3.4 计算长度 53
3.5 间奏曲 54
3.6 索引式访问(indexed access) 55
3.7 查找typelists 56
3.8 附加元素至typelists 57
3.9 移除typelist中的某个元素 58
3.10 移除重复元素(erasing duplicates)59
3.11 取代typelist中的某个元素 60
3.12 为typelists局部更换次序(partially ordering) 61
3.13 运用typelists自动产生classes 64
3.14 摘要 74
3.15 typelist要点概览 75
第4章 小型对象分配技术(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 smallobjallocator class 87
4.7 帽子下的戏法 89
4.8 简单,复杂,终究还是简单 92
4.9 使用细节 93
4.10 摘要 94
4.11 小型对象分配器(small-object allocator)要点概览 94
第二篇 组件(components) 97
第5章 泛化仿函数(generalized functors) 99
5.1 command设计模式 100
5.2 真实世界中的command 102
5.3 c++ 中的可呼叫体(callable entities) 103
5.4 functor class template骨干 104
5.5 实现“转发式”(forwarding)functor::operator() 108
5.6 处理仿函数 110
5.7 做一个,送一个 112
5.8 引数(argument)和返回型别(return type)的转换 114
5.9 处理pointer to member function(成员函数指针) 115
5.10 绑定(binding) 119
5.11 将请求串接起来(chaining requests) 122
5.12 现实世界中的问题之1:转发式函数的成本 122
5.13 现实世界中的问题之2:heap分配 124
5.14 通过functor实现undo和redo 125
5.15 摘要 126
5.16 functor要点概览 126
第6章 singletons(单件)实现技术 129
6.1 静态数据 + 静态函数 != singleton 130
6.2 用以支持singleton的一些c++ 基本手法 131
6.3 实施“singleton的唯一性” 132
6.4 摧毁singleton 133
6.5 dead(失效的)reference问题 135
6.6 解决dead reference问题(i):phoenix singleton 137
6.7 解决dead reference问题(ii):带寿命的singletons 139
6.8 实现“带寿命的singletons” 142
6.9 生活在多线程世界 145
6.10 将一切组装起来 148
6.11 使用singletonholder 153
6.12 摘要 155
6.13 singletonholder class template要点概览 155
第7章 smart pointers(智能指针) 157
7.1 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 pointers 182
7.12 arrays 183
7.13 smart pointers和多线程(multithreading) 184
7.14 将一切组装起来 187
7.15 摘要 194
7.16 smartptr要点概览194
第8章 object factories(对象工厂) 197
8.1 为什么需要object factories 198
8.2 object factories in c++:classes和objects 200
8.3 实现一个object factory 201
8.4 型别标识符(type identifiers) 206
8.5 泛化(generalization) 207
8.6 细节琐务 210
8.7 clone factories(克隆工厂、翻制工厂、复制工厂) 211
8.8 通过其他泛型组件来使用object factories 215
8.9 摘要 216
8.10 factory class template要点概览 216
8.11 clonefactory class template要点概览 217
第9章 abstract factory(抽象工厂) 219
9.1 abstract factory扮演的体系结构角色(architectural role) 219
9.2 一个泛化的abstract factory接口 223
9.3 实作出abstractfactory 226
9.4 一个prototype-based abstract factory实作品 228
9.5 摘要 233
9.6 abstractfactory和concretefactory要点概览 233
第10章 visitor(访问者、视察者) 235
10.1 visitor 基本原理 235
10.2 重载(overloading):catch-all函数 242
10.3 一份更加精炼的实作品:acyclic visitor 243
10.4 visitor之泛型实作 248
10.5 再论 “cyclic” visitor 255
10.6 变化手段 258
10.7 摘要 260
10.8 visitor泛型组件要点概览 261
第11章 multimethods 263
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 dispatcher 276
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当做policies 293
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 面向对象编程中的锁定语意(locking semantics) 306
a.6 可有可无的(optional)volatile标识符 308
a.7 semaphores, events和其他好东西 309
a.8 摘要 309
参考书目(bibliography) 311
百度云及其他网盘下载地址:点我
c++学习书籍推荐《C++设计新思维》下载的更多相关文章
- C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载
普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表 ...
- java虚拟机的学习书籍推荐
javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...
- C++学习书籍推荐《Accelerated C++中文版》下载
百度云及其他网盘下载地址:点我 媒体推荐 书评 这是一本一流的C++入门书,它采用了一种和实践相结合的方式来解决具体的问题.相比我所见过的其他C++入门书来说,本书以令人惊奇的紧凑格式覆盖了更多的关于 ...
- C语言学习书籍推荐《C陷阱与缺陷》下载
下载地址:点我 凯尼格 (作者), 高巍 (译者) <C和C++经典著作:C陷阱与缺陷>适合有一定经验的C程序员阅读学习,即便你是C编程高手,<C和C++经典著作:C陷阱与缺陷> ...
- C语言学习书籍推荐《C和指针 Pointers On C》下载
<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去. 全书共18 ...
- java学习书籍推荐
1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...
- linux学习书籍推荐linux学习书籍推荐
引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...
- 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)
去年看过一篇文章,是关于18年的最适合0基础学习的书籍,今年,最新的书籍也已经统计出来.书籍的PDF太过于难找,所以很多PDF都找不到. 仅仅只能找到英文版PDF 本文章统计了18.19并做过对比,在 ...
- c++学习书籍推荐《C++沉思录》下载
百度云及其他网盘下载地址:点我 编辑推荐 经典C++图书,应广大读者的强烈要求再版 目录 第0章 序幕第一篇 动机第1章 为什么我用C++第2章 为什么用C++工作第3章 生活在现实世界中 第二篇 类 ...
- c++学习书籍推荐《C++编程思想第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 <C++编程思想>(第1卷)(第2版)第1版荣获"软件开发"杂志评选的1996年度 图书震撼大奖,中文版自2000年推出以来, ...
随机推荐
- MVVM讲解
一,MVVM理论知识 从上一篇文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通 ...
- IOS开发之把 JSON 数据转化成 Arrays 或者 Dictionaries
1 前言通过 NSJSONSerialization 这个类的 JSONObjectWithData:options:error:方法来实现,把JSON 数据解析出来放在数据或者字典里面保存. 2 代 ...
- jquery li练习
<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...
- js 点击超链接,执行js脚本,而不进行url跳转
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ...
- 【C#】获取"我的电脑"的名字,如This PC、这台计算机
原文:[C#]获取"我的电脑"的名字,如This PC.这台计算机 注意:这里获取的[我的电脑]的名字,不是机器的名字.如图所示: 要获取的是This PC这个字符串. ----- ...
- js 跨域访问 获取验证码图片 获取header 自定义属性
1.net core web api 后端 /// <summary> /// 图形验证码 /// </summary> [HttpGet] public IActionRes ...
- 【Git】文件暂存与提交
git工作目录文件的两种状态:已跟踪.未跟踪. 文件状态的变化周期: 查看当前文件状态: git status 跟踪新文件/暂存已修改文件 git add newfile 状态简览 git statu ...
- Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化
原文:Win8 Metro(C#)数字图像处理--2.58双峰法图像二值化 [函数名称] 双峰法图像二值化 WriteableBitmap PeakshistogramThSegment( ...
- Win8Metro(C#)数字图像处理--2.31灰度拉伸算法
原文:Win8Metro(C#)数字图像处理--2.31灰度拉伸算法 [函数名称] 灰度拉伸函数GrayStretchProcess(WriteableBitmap src) [算法说明] ...
- UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个)
原文:UWP入门(一) -- 先写几个简单控件简单熟悉下(别看这个) 1. MainPage.xmal <Grid Background="{ThemeResource Applica ...