首页>参考读物>计算机科学与技术>软件与程序设计

More Effective C++中文版 35个改善编程与设计的有效方法
作者 : Scott Meyers
译者 : 刘晓伟
丛书名 : C++设计新思维
出版日期 : 2007-04-23
ISBN : 7-111-21070-2
定价 : 35.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 230
开本 : 16开
原书名 : More Effective C++:35 New ways to Improve Your Programs and Designs
原出版社: AW
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书所给出的建议都是源于日常编程实践的一些真知灼见。和它的姊妹篇《Effective C++》一样,本书是每个C++开发者必不可少的书籍。
  作者Meyers在本书中为我们呈现了35种用于提升程序和设计的新方法。根据多年的经验,Meyers解释了如何才能编写更高效的C++软件:运行效率更高、更为健壮、更为稳定、更容易移植以及更易于重用。简而言之,就是如何编写更好的C++软件。

  本书主要内容
  ●一些经过实践检验的用来改善程序效率的方法,包括检验C++语言特性所带来的时间和空间上的开销。
  ●全面地描述了C++专家所使用的高级技术,包括placement new、虚构造函数、智能指针、引用计数、代理类和双重分派等。
  ●以实例说明异常处理从结构上及行为上给C++类和函数带来的巨大影响。
  ●从实用的角度介绍新的语言特性,包括bool、mutable、explicit、namespaces、成员模板以及标准模板库等。如果你的编译器还不支持这些新特性,Meyers会告诉你如何使用其他的方法来达到同样的效果。

图书特色

图书前言

自C++诞生尤其是ISO/ANSI C++标准问世以来,以Bjarne Stroustrup为首的C++社群领袖一直不遗余力地倡导采用“新风格”教学和使用C++。事实证明,除了兼容于C的低阶特性外,C++提供的高级特性以及在此基础上发展的各种惯用法可以让我们编写出更加简洁、优雅、高效、健壮的程序。
  这些高级特性和惯用法包括精致且高效的标准库和各种“准标准库”,与效率、健壮性、异常安全等主题有关的各种惯用法,以及在C++的未来占据更重要地位的模板和泛型程序设计技术等。它们发展于力量强大的C++社群,并被这个社群中最负声望的专家提炼、升华成一本本精彩的著作。毫无疑问,这些学术成果必将促进C++社群创造出更多的实践成果。
  我个人认为,包括操作系统、设备驱动、编译器、系统工具、图像处理、数据库系统以及通用办公软件等在内的基础软件更能够代表一个国家的软件产业发展质量,迄今为止,此类基础性的软件恰好是C++所擅长开发的,因此,可以感性地说,C++的应用水平在一定程度上可以折射出一个国家的软件产业发展水平和健康程度。
  前些年国内曾引进出版了一大批优秀的C++书籍,它们拓宽了中国C++程序员的视野,并在很大程度上纠正了长期以来存在于C++的教育、学习和使用方面的种种误解,对C++相关的产业发展起到了一定的促进作用。然而在过去的两年中,随着NET、Java技术吸引越来越多的注意力,中国软件产业业务化、项目化的状况愈发加剧,擅长于“系统编程”的C++语言的应用领域似有进一步缩减的趋势,这也导致人们对C++的出版教育工作失去了应有的重视。
  机械工业出版社华章分社决定继续为中国C++“现代化”教育推波助澜,从2006年起将陆续推出一套“C++设计新思维”丛书。这套丛书秉持精品、高端的理念,其作译者为包括Herb Sutter在内的国内外知名C++技术专家和研究者、教育者,议题紧密围绕现代C++特性,以实用性为主,兼顾实验性和探索性,形式上则是原版影印、中文译著和原创兼收并蓄。每一本书相对独立且交叉引用,篇幅短小却内容深入。作为这套丛书的特邀技术编辑,我衷心希望它们所展示的技术、技巧和理念能够为中国C++社群注入新的活力。
  荣耀
  2005年12月
  南京师范大学
  wwwroyaloocom

作者简介

Scott Meyers:Scott Meyers:  Scott Meyers 拥有布朗大学计算机科学博士学位,是世界上最著名的C++软件开发权威之一。他的“Effective C++两卷本” (《Effective C++》和《More Effective C++》) ,开辟了技术图书写作的新风格。他曾担任《C++ Report》杂志的专栏作家,经常为《C/C++ Users Journal》和《Dr. Dobb' s Journal》撰稿。

译者简介

刘晓伟:暂无简介

译者序

《More Effective C++》的英文影印版已由机械工业出版社引进出版。《More Effective C++》英文版自第一次印刷以来,至今销售已超过数十万册,译者手头的英文原书是2005年8月份第21次印刷的版本。本书的经典性和它的姊妹篇《Effective C++》一样毋庸置疑。相比《Effective C++》,本书对于运算符重载、默认构造函数、异常处理、延迟计算(lazy evaluation)、代理类(proxy class)、智能指针(smart pointer)、双重分派(doubledispatching)等主题进行了深入和详尽的讨论。毫无疑问,这些主题是每个从事C++程序开发的专业人员都应该掌握的内容。另一方面,正如作者在本书英文版的网页上所指出的那样,随着以模板为代表的C++新技术的逐步深入人心,本书的某些条款需要以发展的眼光去看待,比如说,boost∶∶assign库以提供反例的形式为本书中关于运算符重载的条款给出了更好的注解;以shared_ptr为代表的boost智能指针库和《Modern C++ Design》一书提供的基于Policy的智能指针设计,都针对智能指针这个主题提供了更为完善的解决方案。此外,本书使用相当篇幅进行讨论的双重分派(doubledispatching)问题,在《Modern C++ Design》一书中也通过使用模板给出了更为完美的解决方案。鉴于此,对这些主题有兴趣的读者在阅读完本书以后,可以进一步研究《Modern C++ Design》一书中的相关内容。
  在此,首先要感谢《Imperfect C++》和《Exceptional C++ Style》等书的译者刘未鹏把我介绍给机械工业出版社华章分社的陈冀康编辑。感谢我的同事吉子军和葛小果不厌其烦地与我讨论技术上的一些细节问题。另外,还要感谢陈高兵和乔茜在我翻译此书的过程中为我提供了舒适的工作环境。
  关于本书,译者惟一的心愿就是希望这个译本没有辜负英文原版的名声。如果您对这个译本有任何意见或者建议,您可以通过liuxiaoweide@gmailcom与我联系。另外,我也会在http://blogcsdnnet/lxwde上维护本书的一个勘误表。

  刘晓伟
  2006年12月

图书目录

“C++设计新思维”丛书前言
对本书的赞誉
译者序
引言
致谢
第1章基础议题1
条款1:区分指针和引用1
条款2:优先考虑C++风格的类型转换3
条款3:决不要把多态应用于数组7
条款4:避免不必要的默认构造函数9
第2章运算符13
条款5:小心用户自定义的转换函数13
条款6:区分自增运算符和自减运算符
的前缀形式与后缀形式19
条款7:不要重载“& &”、“||”
和“,”21
条款8:理解new和delete在不同情形
下的含义24
第3章异常29
条款9:使用析构函数防止资源泄漏30
条款10:防止构造函数里的资源泄漏34
条款11:阻止异常传递到析构函数以外41
条款12:理解抛出异常与传递参数或者
调用虚函数之间的不同43
条款13:通过引用捕获异常49
条款14:审慎地使用异常规格52
条款15:理解异常处理所付出的代价57
第4章效率59
条款16:记住80-20准则60
条款17:考虑使用延迟计算61
条款18:分期摊还预期的计算开销69
条款19:了解临时对象的来源73
条款20:协助编译器实现返回值优化75
条款21:通过函数重载避免隐式类型
转换78
条款22:考虑使用op=来取代
单独的op运算符80
条款23:考虑使用其他等价的程序库82
条款24:理解虚函数、多重继承、虚基类
以及RTTI所带来的开销85
第5章技巧92
条款25:使构造函数和非成员函数具有
虚函数的行为92
条款26:限制类对象的个数97
条款27:要求或者禁止对象分配在堆上110
条款28:智能指针122
条款29:引用计数142
条款30:代理类167
条款31:基于多个对象的虚函数179
第6章杂项199
条款32:在将来时态下开发程序199
条款33:将非尾端类设计为抽象类203
条款34:理解如何在同一程序中混合
使用C++和C213
条款35:让自己熟悉C++语言标准217
推荐读物224
附录auto_ptr的一个实现228

教学资源推荐
作者: H.H.Tan,T.B.D'Orazio,S.H.Or,Marian M.Y.Choy著
作者: (美)Steven S.Muchnick
作者: (美)Al Kelley,Ira Pohl