书籍详情

More Exceptional C++中文版:40个新的工程难题、编程疑问及解决方法

More Exceptional C++中文版:40个新的工程难题、编程疑问及解决方法

作者:Herb Sutter著;於春景译

出版社:华中科技大学出版社

出版时间:2002-01-01

ISBN:9787560927718

定价:¥39.80

购买这本书可以去
内容简介
  More Exceptional C++是广受赞誉是Exceptional C++的续篇,它采用了行之有效的“提问/解答”的组织形式,提供了用C++解决现实世界问题的成功策略。根据多年程序开发的实践经验、Herb Sutter向C++程序员提供了久经考验的程序设计技术和行之有效的解决方案,这些技术和方案对设计从小型工程到企业级应用的现代软件系统大有裨益。 围绕着40个编程难题, More Exceptional C++引导你深刻理解成功的C++软件设计和开发中至关重要的原则和议题。本续篇包括一些新的主题,强化了泛型程序设计、内存管理、C++标准库的使用等内容,并涵盖了traits和predicates这样的重要技术。本书还就使用标准容器和算法时应该牢记的准则和要点进行了分析——其它资料很少深入涉及这一主题。读者可以在本书中找到以下重要问题的解决方案:使用std::map和std::set时会遇到哪些陷阱?如何安全地避免这些陷阱?何种predicates可以安全地和STL一起使用?何种不行?为什么?想通过“与模板协同工作的类型”的能力改变模板自身的行为吗?有什么现有的技术可以写出这种威力强大的通用模板代码?何时应该优化你的代码?如何优化?为什么花哨的优化会(而且的确会)让我们陷入麻烦?如何你是在撰写多线程安全代码,这些问题的某些答案会如何变化?异常安全问题会影响到类的设计吗?或者,它可以只是作为事后的改进手段来使用吗?在结合使用不同供应商提供的基于继承的程序库时,如何避免连体双婴问题?如何安全地使用auto-ptr?如何运用常见的设计模式来改装它,使之消除常见缺陷?可以将auto-ptr用作类的成员吗?在这样做之前,你应该了解些什么?还有,现代C++中最常见的问题之一:到底在何时使用名字空间?如何使用?More Exceptional C++是真正的程序员的必读之物,在向你展示如何用C++撰写优质代码的同时,它为你提供了对语言彻底而实用的理解。作者Herb Sutter,他是C++软件开发领域公认的专家:在世界各地的各种技术会议上,他经常应邀发表演讲。通过WWW.gotw.ca/eseminars,他每月数次在网上进行技术讨论直播。作为130多篇技术文章的作者,Herb同时还是ISO/ANSI C++标准委员会委员、C/C++ User Journal的特约撰稿人和专栏作家、前C++ Report主编。其广受欢迎的“C++ Guru of the Week”系列发布在C++语言最主要的互联网新闻组comp.lang.c++.moderated上——自1995年问世以来,他就开始主持这一新闻组。他是Exceptional C++:47 Engineering Puzzles,Programming Problems,and Solutions(Addison-Wealey,2000)的作者。请于www.gotw.ca和他联络。www.aw.com/csenghttp://www.gotw.ca/publications/mxc++.htm译者於春景(网名lostmouse),1993年毕业于中南工业大学计算机科学系,一直从事计算机软件开发工作,现任深圳唯特科技公司软件经理。
作者简介
暂缺《More Exceptional C++中文版:40个新的工程难题、编程疑问及解决方法》作者简介
目录
与大师面对面(译序)

前言
泛型程序设计与C++标准库 1
条款1:流 1
条款2:Predicates,之一:remove()删除了什么? 6
条款3:Predicates,之二:状态带来的问题 11
条款4:可扩充的模板:使用继承还是traits? 19
条款5:typename 32
条款6:容器、指针和“不是容器的容器” 36
条款7:使用vector和deque 46
条款8:使用set和map 53
条款9:等同的代码吗? 59
条款10:模板特殊化与重载 64
条款11:Mastermind 69
优化与性能 83
条款12:内联 83
条款13:缓式优化,之一:一个普通的旧式String 86
条款14:缓式优化,之二:引入缓式优化 90
条款15:缓式优化,之三:迭代器与引用 94
条款16:缓式优化,之四:多线程环境 103
异常安全议题及技术 115
条款17:构造函数失败,之一:对象生命期 115
条款18:构造函数失败,之二:吸收异常? 119
条款19:未捕获的异常 126
条款20:未管理指针存在的问题,之一:参数求值 132

条款21:未管理指针存在的问题,之二:使用auto_ptr? 135
条款22:异常安全与类的设计,之一:拷贝赋值 141
条款23:异常安全与类的设计,之二:继承 149
继承与多态 155
条款24:为什么使用多继承? 155
条款25:模拟多继承 159
条款26:多继承与连体双婴问题 162
条款27:(非)纯虚函数 167
条款28:受控的多态 172
内存及资源管理 175
条款29:使用auto_ptr 175
条款30:智能指针成员,之一:auto_ptr存在的问题 182
条款31:智能指针成员,之二:设计ValuePtr 187
自由函数与宏 201
条款32:递归声明 201
条款33:模拟嵌套函数 206
条款34:预处理宏 215
条款35:宏定义 218
杂项议题 223
条款36:初始化 223
条款37:前置声明 226
条款38:typedef 228
条款39:名字空间,之一:using声明与using指令 231
条款40:名字空间,之二:迁徙到名字空间 234
后记 245
附录A:(在多线程环境下)并非优化 247
附录B:单线程String实现与多线程安全String实现的对比测试结果 263
参考文献 271
索引 273
    
猜您喜欢

读书导航