简介
有人说c++程序员可以分成两类,读过effective c++的和没读过的。然而世界顶级c++大师scott meyers成名之作的第三版的确这样深入。或许有点夸张了,但无论如何,当您拥有这本书之后,就获得了迅速提升自己c++功力的一个契机。
在国际上﹐本书所引起的反响之大﹐波及整个计算器技术出版领域﹐余音至今未绝。几乎在所有c++书籍的推荐名单上﹐本书都会位于前三名。作者高超的技术把握力﹐独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织﹐都受到极大的推崇和仿效。甚至连本书简洁明快的命名风格﹐也有着一种特殊的号召力﹐我可以轻易列举出一大堆类似名字﹐比如meyers本人的more effective c++和effective stl﹐don box的effectivecom﹐stan lippman主编的efficient c++系列﹐herb sutter的exceptional c++等等。要知道﹐这可不是出版社的有意安排﹐而且上面这些作者﹐同样是各自领域里的绝顶大师﹐决非人云亦云﹑欺世盗名之辈。这种奇特的现象﹐只能解释为人们对这本书衷心的赞美和推崇。
这本书不是读完一遍就可以束之高阁的快餐读物,也不是能够立刻解决手边问题的参考手册,而是需要您去反复阅读体会,极力融入自己思想之中,融入自己每一次敲击键盘的动作之中。c++是真正程序员的语言,背后有着精深的思想与无以伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮助您跨越c++的重重险阻,领略高处才有的壮美,做一个成功而快乐的c++程序员。
目录
preface
acknowledgments
introduction.
chapter 1: accustoming yourself to c++
item 1: view c++ as a federation of languages.
item 2: prefer consts, enums, and inlines to #defines.
item 3: use const whenever possible.
item 4: make sure that objects are initialized before they're used.
chapter 2: constructors, destructors, and assignment operators
item 5: know what functions c++ silently writes and calls.
item 6: explicitly disallow the use of compilergenerated functions you do not want.
item 7: declare destructors virtual in polymorphic base classes.
item 8: prevent exceptions from leaving destructors.
item 9: never call virtual functions during construction or destruction.
item 10: have assignment operators return a reference to *this.
item 11: handle assignment to self in operator=.
item 12: copy all parts of an object.
chapter 3: resource management
item 13: use objects to manage resources.
item 14: think carefully about copying behavior in resource-managing classes.
.item 15: provide access to raw resources in resourcemanaging classes.
item 16: use the same form in corresponding uses of new and delete.
item 17: store newed objects in smart pointers in standalone statements.
chapter 4: designs and declarations
item 18: make interfaces easy to use correctly and hard to use incorrectly.
item 19: treat class design as type design.
item 20: prefer pass-by-reference-to-const to pass-by-value.
item 21: don't try to return a reference when you must return an object.
item 22: declare data members private.
item 23: prefer non-member non-friend functions to member functions.
item 24: declare non-member functions when type conversions should apply to all parameters.
item 25: consider support for a non-throwing swap.
chapter 5: implementations..
item 26: postpone variable definitions as long as possible.
item 27: minimize casting.
item 98: avoid returning "handles" to object internals.
item 29: strive for exception-safe code.
item 30: understand the ins and outs of inlining.
item 31: minimize compilation dependencies between files.
chapter 6: inheritance and object-oriented design
item 32: make sure public inheritance models "is-a."
item 33: avoid hiding inherited names.
item 34: differentiate between inheritance of interface and inheritance of implementation.
item 35: consider alternatives to virtual functions.
item 36: never redefine an inherited non-virtual function.
item 37: never redefine a function's inherited default parameter value.
item 38: model "has-a" or is-implemented-in-terms-of" through composition.
item 39: use private inheritance judiciously.
item 40: use multiple inheritance judiciously.
chapter 7: templates and generic programming
item 41: understand implicit interfaces and compiletime polymorphism.
item 42: understand the two meanings of typename.
item 43: know how to access names in templatized base classes.
item 44: factor parameter-independent code out of templates.
item 45: use member function templates to accept "all compatible types."
item 46: define non-member functions inside templates when type conversions are desired.
item 47: use traits classes for information about types.
item 48: be aware of template metaprogramming.
chapter 8: customizing new and delete
item 49: understand the behavior of the new-handler.
item 50: understand when it makes sense to replace new and delete.
item 51: adhere to convention when writing new and delete.
item 52: write placement delete if you write placement new.
chapter 9: miscellany
item 53: pay attention to compiler warnings.
item 54: familiarize yourself with the standard library, including tr1.
item 55: familiarize yourself with boost.
appendix a: beyond effective c++
appendix b: item mappings between second and third editions
index ...
acknowledgments
introduction.
chapter 1: accustoming yourself to c++
item 1: view c++ as a federation of languages.
item 2: prefer consts, enums, and inlines to #defines.
item 3: use const whenever possible.
item 4: make sure that objects are initialized before they're used.
chapter 2: constructors, destructors, and assignment operators
item 5: know what functions c++ silently writes and calls.
item 6: explicitly disallow the use of compilergenerated functions you do not want.
item 7: declare destructors virtual in polymorphic base classes.
item 8: prevent exceptions from leaving destructors.
item 9: never call virtual functions during construction or destruction.
item 10: have assignment operators return a reference to *this.
item 11: handle assignment to self in operator=.
item 12: copy all parts of an object.
chapter 3: resource management
item 13: use objects to manage resources.
item 14: think carefully about copying behavior in resource-managing classes.
.item 15: provide access to raw resources in resourcemanaging classes.
item 16: use the same form in corresponding uses of new and delete.
item 17: store newed objects in smart pointers in standalone statements.
chapter 4: designs and declarations
item 18: make interfaces easy to use correctly and hard to use incorrectly.
item 19: treat class design as type design.
item 20: prefer pass-by-reference-to-const to pass-by-value.
item 21: don't try to return a reference when you must return an object.
item 22: declare data members private.
item 23: prefer non-member non-friend functions to member functions.
item 24: declare non-member functions when type conversions should apply to all parameters.
item 25: consider support for a non-throwing swap.
chapter 5: implementations..
item 26: postpone variable definitions as long as possible.
item 27: minimize casting.
item 98: avoid returning "handles" to object internals.
item 29: strive for exception-safe code.
item 30: understand the ins and outs of inlining.
item 31: minimize compilation dependencies between files.
chapter 6: inheritance and object-oriented design
item 32: make sure public inheritance models "is-a."
item 33: avoid hiding inherited names.
item 34: differentiate between inheritance of interface and inheritance of implementation.
item 35: consider alternatives to virtual functions.
item 36: never redefine an inherited non-virtual function.
item 37: never redefine a function's inherited default parameter value.
item 38: model "has-a" or is-implemented-in-terms-of" through composition.
item 39: use private inheritance judiciously.
item 40: use multiple inheritance judiciously.
chapter 7: templates and generic programming
item 41: understand implicit interfaces and compiletime polymorphism.
item 42: understand the two meanings of typename.
item 43: know how to access names in templatized base classes.
item 44: factor parameter-independent code out of templates.
item 45: use member function templates to accept "all compatible types."
item 46: define non-member functions inside templates when type conversions are desired.
item 47: use traits classes for information about types.
item 48: be aware of template metaprogramming.
chapter 8: customizing new and delete
item 49: understand the behavior of the new-handler.
item 50: understand when it makes sense to replace new and delete.
item 51: adhere to convention when writing new and delete.
item 52: write placement delete if you write placement new.
chapter 9: miscellany
item 53: pay attention to compiler warnings.
item 54: familiarize yourself with the standard library, including tr1.
item 55: familiarize yourself with boost.
appendix a: beyond effective c++
appendix b: item mappings between second and third editions
index ...
Effective C++ / 3rd ed.
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×