Effective C++:改善程序与设计的55个具体做法(第3版)

Effective C++:改善程序与设计的55个具体做法(第3版)
作 者: 梅耶
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: VC++
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Effective C++:改善程序与设计的55个具体做法(第3版)》作者简介

内容简介

“C++程序员可以分成两类,读过Effective C++的和没读过的。”世界顶级C++大师Scott Meyers 这部成名之作,与这句话一道在全球无数读者间广为传颂。几乎所有C++书籍推荐名单上,Scott Meyers编著,云风译注的《Effective C++:改善程序与设计的55个具体做法(第3版)(评注版)(双色)》都会位列三甲。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织,都受到极大的推崇和仿效。对于国外技术图书,选择翻译版还是影印版,常让人陷入两难。本评注版力邀国内资深专家执笔,在英文原著基础上增加中文点评与注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者阅读与学习加以点拨、指明捷径。经过评注的版本,更值得反复阅读与体会。希望《Effective C++:改善程序与设计的55个具体做法(第3版)(评注版)(双色)》这本书能够帮助您跨越C++的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的C++程序员。经过评注的版本,更值得反复阅读与体会。希望这本《Effective C++:改善程序与设计的55个具体做法(第3版)(评注版)(双色)》能够帮助您跨越C++的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的C++程序员。

图书目录

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’reused. 28

Chapter 2: Constructors, Destructors, and Assignment

Operators(新增批注共9条) 37

Item 5: Know what functions C++ silently writes andcalls. 37

Item 6: Explicitly disallow the use of compiler-generatedfunctions

you do not want. 41

Item 7: Declare destructors virtual in polymorphic baseclasses. 43

Item 8: Prevent exceptions from leaving destructors. 49

Item 9: Never call virtual functions during construction ordestruction. 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 inresource-managing classes. 71

Item 15: Provide access to raw resources in resource-managingclasses. 74

Item 16: Use the same form in corresponding uses of new anddelete. 78

Item 17: Store newed objects in smart pointers in standalonestatements. 80

Chapter 4: Designs and Declarations(新增批注共28条) 83

Item 18: Make interfaces easy to use correctly and hard to useincorrectly. 83

Item 19: Treat class design as type design. 89

Item 20: Prefer pass-by-reference-to-const topass-by-value. 91

Item 21: Don’t try to return a reference when you must return anobject. 96

Item 22: Declare data members private. 101

Item 23: Prefer non-member non-friend functions to memberfunctions. 105

Item 24: Declare non-member functions when type conversionsshould

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 aspossible. 122

Item 27: Minimize casting. 125

Item 28: Avoid returning “handles” to objectinternals. 133

Item 29: Strive for exception-safe code. 137

Item 30: Understand the ins and outs of inlining. 146

Item 31: Minimize compilation dependencies betweenfiles. 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 andinheritance of

implementation. 174

Item 35: Consider alternatives to virtual functions. 183

Item 36: Never redefine an inherited non-virtualfunction. 192

Item 37: Never redefine a function’s inherited default parametervalue. 194

Item 38: Model “has-a” or is-implemented-in-terms-of” throughcomposition. 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-timepolymorphism. 216

Item 42: Understand the two meanings of typename. 220

Item 43: Know how to access names in templatized baseclasses. 225

Item 44: Factor parameter-independent code out oftemplates. 230

Item 45: Use member function templates to accept “all compatibletypes.” 235

Item 46: Define non-member functions inside templates whentype

conversions are desired. 240

Item 47: Use traits classes for information abouttypes. 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 anddelete. 267

Item 51: Adhere to convention when writing new anddelete. 272

Item 52: Write placement delete if you write placementnew. 276

Chapter 9: Miscellany(新增批注共8条) 283

Item 53: Pay attention to compiler warnings. 283

Item 54: Familiarize yourself with the standard library, includingTR1. 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