内容简介
“c++程序员可以分成两类,读过effective c++的和没读过的。”世界顶级c++大师scott meyers这部成名之作,与这句话一道在全球无数读者间广为传颂。几乎所有c++书籍推荐名单上﹐《effective c++:改善程序与设计的55个具体做法:第3版》都会位列三甲。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织﹐都受到极大的推崇和仿效。
对于国外技术图书,选择翻译版还是影印版,常让人陷入两难。本评注版力邀国内资深专家执笔,在英文原著基础上增加中文点评与注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者阅读与学习加以点拨、指明捷径。
经过评注的版本,更值得反复阅读与体会。希望这《effective c++:改善程序与设计的55个具体做法:第3版》能够帮助您跨越c++的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的c++程序员。
Scott Meyers是全世界最知名的C++软件开发专家之一。他是畅销书《Effective C++++》系列(Effective C++,More Effective C++,Effective STL)的作者,又是创新产品《Effective C++ CD》的设计者和作者,也是Addison-Wesley的“Effective Software Development Series”顾问编辑,以及《Software Development》杂志咨询板成员。他也为若干新公司的技术咨询板提供服务。Meyers于1993年自Brown大学获得计算机博士学位。
目录
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 · · · · · · (收起)文件下载