好书推荐 好书速递 排行榜 读书文摘

Effective C++

Effective C++
作者:[美] Scott Meyers / 校注 云风评
译者:云风评注
副标题:改善程序与设计的55个具体做法
出版社:电子工业出版社
出版年:2011-06
ISBN:9787121133763
行业:计算机
浏览数:134

内容简介

“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

......(更多)

读书文摘

Class的设计就是type的设计 。重载函数和操作符、控制内存的分配和归还、定义对象的初始化和总结。。。

1. “促进正确使用”的方法包括接口的一致性,以及与内置类型的行为兼容。 2. “阻止误用”的方法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。 3. 使用shared_ptr支持定制型删除器;也可以用来自动解除互斥锁。

......(更多)

猜你喜欢

点击查看