内容简介
“C++程序员可以分成两类,读过Effective C++的和没读过的。”世界顶级C++大师Scott Meyers这部成名之作,与这句话一道在全球无数读者间广为传颂。几乎所有C++书籍推荐名单上﹐本书都会位列三甲。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织﹐都受到极大的推崇和仿效。
对于国外技术图书,选择翻译版还是影印版,常让人陷入两难。本评注版力邀国内资深专家执笔,在英文原著基础上增加中文点评与注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者阅读与学习加以点拨、指明捷径。
经过评注的版本,更值得反复阅读与体会。希望这本书能够帮助您跨越C++的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的C++程序员。
本书目录
页 数:340
Introduction(新增批注共2条) 1
Chapter 1: Accustoming Yourself to C++
(新增批注共12条) 11
Item 1: View C++ as a federation of languages. 11
Item 2: Prefer consts, enums, and inlines to #defines. 14
Item 3: Use const whenever possible. 19
Item 4: Make sure that objects are initialized before they’re used. 28
Chapter 2: Constructors, Destructors, and Assignment
Operators(新增批注共9条) 37
Item 5: Know what functions C++ silently writes and calls. 37
Item 6: Explicitly disallow the use of compiler-generated functions
you do not want. 41
Item 7: Declare destructors virtual in polymorphic base classes. 43
Item 8: Prevent exceptions from leaving destructors. 49
Item 9: Never call virtual functions during construction or destruction. 53
Item 10: Have assignment operators return a reference to *this. 57
Item 11: Handle assignment to self in operator=. 58
Item 12: Copy all parts of an object. 62
Chapter 3: Resource Management(新增批注共7条) 66
Item 13: Use objects to manage resources. 66
Item 14: Think carefully about copying behavior in resource-managing classes. 71
Item 15: Provide access to raw resources in resource-managing classes. 74
Item 16: Use the same form in corresponding uses of new and delete. 78
Item 17: Store newed objects in smart pointers in standalone statements. 80
Chapter 4: Designs and Declarations(新增批注共28条) 83
Item 18: Make interfaces easy to use correctly and hard to use incorrectly. 83
Item 19: Treat class design as type design. 89
Item 20: Prefer pass-by-reference-to-const to pass-by-value. 91
Item 21: Don’t try to return a reference when you must return an object. 96
Item 22: Declare data members private. 101
Item 23: Prefer non-member non-friend functions to member functions. 105
Item 24: Declare non-member functions when type conversions should
apply to all parameters. 109
Item 25: Consider support for a non-throwing swap. 113
Chapter 5: Implementations(新增批注共42条) 122
Item 26: Postpone variable definitions as long as possible. 122
Item 27: Minimize casting. 125
Item 28: Avoid returning “handles” to object internals. 133
Item 29: Strive for exception-safe code. 137
Item 30: Understand the ins and outs of inlining. 146
Item 31: Minimize compilation dependencies between files. 152
Chapter 6: Inheritance and Object-Oriented Design
(新增批注共39条) 162
Item 32: Make sure public inheritance models “is-a.” 163
Item 33: Avoid hiding inherited names. 169
Item 34: Differentiate between inheritance of interface and inheritance of
implementation. 174
Item 35: Consider alternatives to virtual functions. 183
Item 36: Never redefine an inherited non-virtual function. 192
Item 37: Never redefine a function’s inherited default parameter value. 194
Item 38: Model “has-a” or is-implemented-in-terms-of” through composition. 198
Item 39: Use private inheritance judiciously. 201
Item 40: Use multiple inheritance judiciously. 207
Chapter 7: Templates and Generic
Programming(新增批注共28条) 215
Item 41: Understand implicit interfaces and compile-time polymorphism. 216
Item 42: Understand the two meanings of typename. 220
Item 43: Know how to access names in templatized base classes. 225
Item 44: Factor parameter-independent code out of templates. 230
Item 45: Use member function templates to accept “all compatible types.” 235
Item 46: Define non-member functions inside templates when type
conversions are desired. 240
Item 47: Use traits classes for information about types. 245
Item 48: Be aware of template metaprogramming. 251
Chapter 8: Customizing new and delete
(新增批注共17条) 258
Item 49: Understand the behavior of the new-handler. 259
Item 50: Understand when it makes sense to replace new and delete. 267
Item 51: Adhere to convention when writing new and delete. 272
Item 52: Write placement delete if you write placement new. 276
Chapter 9: Miscellany(新增批注共8条) 283
Item 53: Pay attention to compiler warnings. 283
Item 54: Familiarize yourself with the standard library, including TR1. 284
Item 55: Familiarize yourself with Boost. 290
Appendix A: Beyond Effective C++ 295
Appendix B: Item Mappings Between Second
and Third Editions 299
Index 302
温馨提示
欢迎您选择北京考试书店,在这里,我们向您承诺,本书店出售图书均为正版图书,请您放心购买!
如您在下订单的时候遇到难题,欢迎您随时咨询我们的客服人员;
咨询热线:13520801473;在线QQ:1119846269;
如您对我们的书店有任何建议,欢迎您发邮件给我们,我们的邮箱:service@bookskys.com
北京考试书店祝您购物愉快!
汇款账号
汇款户名:庹珍珍
中国工商银行帐号:6222 0202 0004 8271 965
中国农业银行帐号:6228 4800 1051 6883 112
中国银行帐号:6013 8201 0001 5744 736
中国邮政银行帐号:6221 8810 0006 5935 785
中国建设银行账号: 6227 0000 1286 0174 562
支付宝账号:tuozhenzhen88@126.com