相关图书推荐 |
|
 |
|
|
最近热书 |
|
 |
|
|
|
| 原出版社:Addison Wesley |
| 出版日期:2003年3月 |
| 版别版次:2003年3月北京第一版第一次印刷 |
本书勘误:有(0)条勘误 |
|
| 字数 :313 印张:20.75 |
| 印数 :1-8000 页数:317 |
| 附带物 :
无附带物 |
|
|
前言
|
译序(侯捷)C++ 是一个难学易用的语言!C++ 的难学,不仅在其广博的语法,以及语法背后的语意,以及语意背后的深层思维,以及深层思维背后的对象模型;C++ 的难学,还在于它提供了四种不同(但相辅相成)的程序设计思维模式:procedural-based, object-based, object-oriented,generic paradigm。世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯兼容,又要能治大国,又要能烹小鲜,学习起来当然就不可能太简单。在如此庞大复杂的机制下,万千使用者前仆后续的动力是:一旦学成,妙用...
译序(侯捷) C++ 是一个难学易用的语言! C++ 的难学,不仅在其广博的语法,以及语法背后的语意,以及语意背后的深层思维,以及深层思维背后的对象模型;C++ 的难学,还在于它提供了四种不同(但相辅相成)的程序设计思维模式:procedural-based, object-based, object-oriented,generic paradigm。 世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯兼容,又要能治大国,又要能烹小鲜,学习起来当然就不可能太简单。在如此庞大复杂的机制下,万千使用者前仆后续的动力是:一旦学成,妙用无穷。 C++ 相关书籍之多,车载斗量;如天上繁星,如过江之鲫。广博如四库全书者有之(The C++ Programming Language、C++ Primer),深奥如重山复水者有之(TheAnnotated C++ Reference Manual, Inside the C++ Object Model),细说历史者有之(The Design and Evolution of C++, Ruminations on C++),独沽一味者有之(Polymorphism in C++, Genericity in C++),独树一帜者有之(Design Patterns,Large Scale C++ Software Design, C++ FAQs),链接库大全有之(The C++ StandardLibrary),另辟蹊径者有之(Generic Programming and the STL),工程经验之累 积亦有之(Effective C++, More Effective C++, Exceptional C++)。 这其中,「工程经验之累积」对已具C++ 相当基础的程序员而言,有着致命的吸引力与立竿见影的帮助。Scott Meyers 的Effective C++ 和More Effective C++ 是此类佼佼,Herb Sutter 的Exceptional C++ 则是后起之秀。 这类书籍的一个共通特色是轻薄短小,并且高密度地纳入作者浸淫于C++/OOP 领域多年而广泛的经验。它们不但开展读者的视野,也为读者提供各种C++/OOP 常见问题或易犯错误的解决模型。某些小范围主题诸如「在base classes 中使用virtual destructor」、「令operator= 传回*this 的reference」,可能在百科型C++ 语言书籍中亦曾概略提过,但此类书籍以深度探索的方式,让我们了解问题背后的成因、最佳的解法、以及其它可能的牵扯。至于大范围主题,例如smartpointers, reference counting, proxy classes,double dispatching, 基本上已属design patterns 的层级! 这些都是经验的累积和心血的结晶。 我很高兴将以下三本极佳书籍,规划为一个系列,以精装的形式呈现给您: 1. Effective C++ 2/e, by Scott Meyers, AW 1998 2. More Effective C++, by Scott Meyers, AW 1996 3. Exceptional C++, by Herb Sutter, AW 1999 不论外装或内容,中文版比其英文版兄弟毫不逊色。本书不但与原文本页页对译,保留索引,并加上精装、书签条、译注、书籍交叉参考、完整范例码、读者服务。 这套书对于您的程序设计生涯,可带来重大帮助。制作这套书籍使我感觉非常快乐。我祈盼(并相信)您在阅读此书时拥有同样的心情。
<<
显示前言详情
|
|
内容简介
|
继 Effective C++ 之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。虽然出版年代稍嫌久远,本书并没有第二版,原因是当其出版之时(1996),C++ Standard 已经几乎定案,...
继 Effective C++ 之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching┅等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。 虽然出版年代稍嫌久远,本书并没有第二版,原因是当其出版之时(1996),C++ Standard 已经几乎定案,本书即依当时的标准草案而写。其间与现今之 C++ 标准规格几乎相同。可能变化的几个弹性之处,Meyers 也都有所说明与提示。读者可以连结作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什麽重大误失)。 本书第一页列有它所获得的赞誉。对於读者,这是一份值得叁考的资料,我试着把它们译为中文,条列於下: Ø 这是一本多方面发人深省的 C++ 书籍:不论在你偶尔用到的语言特性上,或是在你自以为十分熟悉的语言特性上。只有深刻了解 C++ 编译器如何解释你的码,你才有可能以 C++ 语言写出稳健强固的软体。本书是协助你获得此等层级之了解过程中,一份极具价值的资源。读过本书之後,我感觉像是浏览了 C++ 程式大师所检阅过的码,并获得许多极具价值的洞见。 - Fred Wild, Vce President of Technology, Advantage Software echnologies
Ø 本书内含大量重要的技术,这些技术是撰写优良 C++ 程式所不可或缺的。本书解释如何设计和实作这些观念,以及潜伏在其他某些替代方案中的陷阱。本书亦含晚近加入之 C++ 特性的详细说明。任何人如果想要好好地运用这些新特性,最好买一本并且放在随手可得之处,以备查阅。 - Chrisopher J. Van Wyk, Professor Mahematics and Computer Science, Drew University
Ø 这是一本具备工业强度的最佳书籍。对於已经阅读过 Effetive C++ 的人,这是完美的续集。 - Eric Nagler, ++ Instructor and Author, Univesity of California Santa Cruz Extension
Ø More Effective C++ 是一本无微不至而且价值不扉的书籍,是 Scott 第一本书 Effective C++ 的续集。我相信每一位专业的 C++ 软体开发人员都应该读过并记忆 Effective C++ 和 More Effective C++ 两本书内的各种招式,以及其中重要(并且有时候不可思议)的语言面向。我强烈推荐这两本书给软体开发人员、测试人员、管理人员┅,每个人都可以从 Scott 专家级的知识与卓越的表达能力中获益。 - Steve Burkett, Software Consutant
<<
显示内容简介详情
|
|
目录
|
译序(侯捷) 目录(Contents) 致谢(Acknowledgments. 中文版略) 导读(Introduction) 001 基础议题(Basics) 009 条款1:仔细区别 pointers 和 references 009 Distinguish between pointers and references 条款2:最好使用 C++ 转型操作符 012 Prefer C++-style casts 条款3:绝对不要以polymorphically(多态)方式来处理数组 016 Never treat arrays polymorphically 条款4:非必要不提供 default constructor 019 Avoid gratuitous default constructors 操作符(Operators) 024 条款5:对定制的型别转换函数保持警觉 024 Be wary of user-defined conversion functions 条款6:区别 increment/decrement 操作符的 前置(prefix)和后置(postfix)型式 031 Distinguish between prefix and postfix forms of increment and decrement operators 条款7:千万不要重载 &&, ||, 和 , 操作符 035 · · · · · ·
译序(侯捷) 目录(Contents) 致谢(Acknowledgments. 中文版略) 导读(Introduction) 001 基础议题(Basics) 009 条款1:仔细区别 pointers 和 references 009 Distinguish between pointers and references 条款2:最好使用 C++ 转型操作符 012 Prefer C++-style casts 条款3:绝对不要以polymorphically(多态)方式来处理数组 016 Never treat arrays polymorphically 条款4:非必要不提供 default constructor 019 Avoid gratuitous default constructors 操作符(Operators) 024 条款5:对定制的型别转换函数保持警觉 024 Be wary of user-defined conversion functions 条款6:区别 increment/decrement 操作符的 前置(prefix)和后置(postfix)型式 031 Distinguish between prefix and postfix forms of increment and decrement operators 条款7:千万不要重载 &&, ||, 和 , 操作符 035 Never overload &&, ||, or , 条款8:了解各种不同意义的 new 和 delete 038 Understand the different meanings of new and delete
异常(Exceptions) 044 条款9:利用 destructors 避免泄漏资源 045 Use destructors to prevent resource leaks 条款10:在 constructors 内阻止资源泄漏(resource leaks) 050 Prevent resource leaks in constructors 条款11:禁止异常(exceptions)流出 destructors 之外 058 Prevent exceptions from leaving destructors 条款12:了解「掷出一个 exception」与「传递一个参数」 或「调用一个虚函数」之间的差异 061 Understand how throwing an exception differs from passing a parameter or calling a virtual function 条款13:以 by reference 方式捕捉 exceptions 068 Catch exceptions by reference 条款14:明智运用 exception specifications 072 Use exception specifications judiciously 条款15:了解异常处理(exception handling)的成本 078 Understand the costs of exception handling
效率(Efficiency) 081 条款16:谨记 80-20 法则 082 Remember the 80-20 rule 条款17:考虑使用 lazy evaluation 085 Consider using lazy evaluation 条款18:分期摊还预期的计算成本 093 Amortize the cost of expected computations 条款19:了解暂时对象的来源 098 Understand the origin of temporary objects 条款20:协助完成「返回值优化(RVO)」 101 Facilitate the return value optimization 条款21:利用重载技术(overload)避免隐式型别转换 105 Overload to avoid implicit type conversions 条款22:考虑以操作符复合型式(op=)取代其独身型式(op)107 Consider using op= instead of stand-alone op 条款23:考虑使用其它程序库 110 Consider alternative libraries 条款24:了解 virtual functions、multiple inheritance、virtual base classes、 runtime type identification 所需的成本 113 Understand the costs of virtual functions, multiple inheritance, virtual base classes, and RTTI
技术(Techniques, Idioms, Pattern) 123 条款25:将 constructor 和 non-member functions 虚化 123 Virtualizing constructors and non-member functions 条款26:限制某个 class 所能产生的对象数量 130 Limiting the number of objects of a class 条款27:要求(或禁止)对象产生于 heap 之中 145 Requiring or prohibiting heap-based objects 条款28:Smart Pointers(智能指针) 159 条款29:Reference counting(引用计数) 183 条款30:Proxy classes(替身类、代理类) 213 条款31:让函数根据一个以上的对象型别来决定如何虚化 228 Making functions virtual with respect to more than one object 杂项讨论(Miscellany) 252 条款32:在未来时态下发展程序 252 Program in the future tense 条款33:将非尾端类(non-leaf classes)设计为 抽象类(abstract classes) 258 Make non-leaf classes abstract 条款34:如何在同一个程序中结合 C++ 和 C 270 Understand how to combine C++ and C in the same program 条款35:让自己习惯于标准 C++ 语言 277 Familiarize yourself with the language standard 推荐书目 285 auto_ptr 实现代码 291 索引1(General Index) 295 索引2(Index of Example Classes, Functions, and Templtes) 313
<<
显示目录详情
|
|
- 全部评论(0)
- 力荐(0)
- 推荐(0)
- 还行(0)
- 较差(0)
- 很差(0)
|
前5位评价用户: 发表评价即可获得华元,前五位评价用户可获得多倍华元!
 目前还没有评论
|