0%

MoreEffectiveC++中文版PDF下载

《MoreEffectiveC++中文版》

链接: https://pan.baidu.com/s/12hyN9W4EjEbsicLDrmdS-g 提取码: qdd3

继Effective C++之后,Scott Meyers于1996推出这本“续集”。条款变得比较少,页数倒是多了一些,原因是这次选材比“第一集”更高阶,尤其是第5章。Meyers将此章命名为技术(techniques),并明白告诉你,其中都是一些patterns,例如virtual constructors,smart pointers,reference counting,proxy classes,double dispatching……这一章的每个条款篇幅都达15~30 页之多,实在让人有“山重水复疑无路,柳暗花明又一村”之叹。

虽然出版年代稍嫌久远,但本书并没有第2版,原因是当其出版之时(1996),C++ Standard已经几乎定案,本书即依当时的标准草案而写,其与现今的C++ 标准规范几乎相同。而且可能变化的几个弹性之处,Meyers也都有所说明与提示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

目 录

译序(侯捷) ix

导读(Introduction) 001

基础议题(Basics) 009

条款1:仔细区别 pointers 和 references 009

Distinguish between pointers and references.

条款2:最好使用 C++ 转型操作符 012

Prefer C++-style casts.

条款3:绝对不要以多态(polymorphically)方式处理数组 016

Never treat arrays polymorphically.

条款4:非必要不提供 default constructor 019

Avoid gratuitous default constructors.

操作符(Operators) 024

条款5:对定制的“类型转换函数”保持警觉 024

Be wary of user-defined conversion functions.

条款6:区别 increment/decrement 操作符的

前置(prefix)和后置(postfix)形式 031

Distinguish between prefix and postfix forms of increment

and decrement operators.

条款7:千万不要重载&&,||和, 操作符 035

Never overload &&, ||, or ,.

条款8:了解各种不同意义的 new 和 delete 038

Understand the different meanings of new and delete

异常(Exceptions) 044

条款9:利用 destructors 避免泄漏资源 045

Use destructors to prevent resource leaks.

条款10:在 constructors 内阻止资源泄漏(resource leak) 050

Prevent resource leaks in constructors.

条款11:禁止异常(exceptions)流出 destructors 之外 058

Prevent exceptions from leaving destructors.

条款12:了解“抛出一个 exception”与“传递一个参数”

或“调用一个虚函数”之间的差异 061

Understand how throwing an exception differs from

passing a parameter or calling a virtual function.

条款13:以 by reference 方式捕捉 exceptions 068

Catch exceptions by reference.

条款14:明智运用 exception specifications 072

Use exception specifications judiciously.

条款15:了解异常处理(exception handling)的成本 078

Understand the costs of exception handling.

效率(Efficiency) 081

条款16:谨记 80-20 法则 082

Remember the 80-20 rule.

条款17:考虑使用 lazy evaluation(缓式评估) 085

Consider using lazy evaluation.

条款18:分期摊还预期的计算成本 093

Amortize the cost of expected computations.

条款19:了解临时对象的来源 098

Understand the origin of temporary objects.

条款20:协助完成“返回值优化(RVO)” 101

Facilitate the return value optimization.

条款21:利用重载技术(overload)避免隐式类型转换(implict type conversions)105

Overload to avoid implicit type conversions.

条款22:考虑以操作符复合形式(op=)取代其独身形式(op) 107

Consider using op= instead of stand-alone op.

条款23:考虑使用其他程序库 110

Consider alternative libraries.

条款24:了解 virtual functions、multiple inheritance、virtual base classes、

runtime type identification 的成本 113

Understand the costs of virtual functions, multiple inheritance,

virtual base classes, and RTTI.

技术(Techniques, Idioms, Patterns) 123

条款25:将 constructor 和 non-member functions 虚化 123

Virtualizing constructors and non-member functions.

条款26:限制某个 class 所能产生的对象数量 130

Limiting the number of objects of a class.

条款27:要求(或禁止)对象产生于 heap 之中 145

Requiring or prohibiting heap-based objects.

条款28:Smart Pointers(智能指针) 159

条款29:Reference counting(引用计数) 183

条款30:Proxy classes(替身类、代理类) 213

条款31:让函数根据一个以上的对象类型来决定如何虚化 228

Making functions virtual with respect to more than one object.

杂项讨论(Miscellany) 252

条款32:在未来时态下发展程序 252

Program in the future tense.

条款33:将非尾端类(non-leaf classes)设计为

抽象类(abstract classes) 258

Make non-leaf classes abstract.

条款34:如何在同一个程序中结合 C++ 和 C 270

Understand how to combine C++ and C in the same program.

条款35:让自己习惯于标准 C++ 语言 277

Familiarize yourself with the language standard.

推荐读物 285

auto_ptr 实现代码 291

索引(一)(General Index) 295

索引(二)(Index of Example Classes,Functions,and Templtes) 313


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------