More Exceptional C++ 中文版试读(译序及目录)

 [Herb Sutter 的名作More Exceptional C++中文版即将出版。作为本书译者,我很高兴将本书推荐给大家。征得华中科技大学出版社同意,我将公开部分译稿,敬请大家批评指正。]  

 

与大师面对面(译序)

  

小提琴家穆特录制过一张唱片,收录的是贝多芬最伟大的两部小提琴作品1。聆听那张唱片,你仿佛听见贝多芬在向你倾诉他对音乐艺术的理解和感悟、为你解答小提琴音乐创作的每一个疑问和困惑。为了向音乐爱好者推荐贝多芬的那两部名作,穆特为她的那张名碟加上了一个恰如其分的标题——“与贝多芬面对面”。

合上More Exceptional C++的瞬间,我的第一反应是为这部名作也加上一个与之类似的副题,然后,郑重地推荐给你。

是的,本书奉献给你的是又一位大师苦心孤诣的结晶。不同的是,这位大师来自你所关注的C++程序设计领域。对每一位C++爱好者或C++专业程序员来说,Herb Sutter的名字应该不会让人感到陌生。作为ISO/ANSI C++标准委员会的委员,Herb Sutter不仅是C++程序设计领域公认的专家,还是深受程序员喜爱的技术讲师和作家。Herb Sutter在互联网上主持的Guru of the Week专栏广受欢迎,几乎成为每一位C++程序员的网上必读。本书就是Guru of the Week的最新总结和精华。

本书的主要特点可以反映在我为它所加的副题中。作为身经百战的专业程序员,而且长期从事程序设计的普及教育工作,Herb Sutter最清楚程序员在提升技术功力的过程中的所想和所为。他既了解初学者的疑问和困惑,也对专业程序员日常工作中遭遇的陷阱和易犯错误了如指掌。因而,在本书中,Herb Sutter采用了独具匠心的“提问/解答”的方式来指导你学习C++的语言特性;在本书的每个专题中,Herb Sutter合理地设想出你的疑问和困惑,又有如神助地猜到了你的(可能是错误的)解答,然后给你以指点并呈现出最佳方案,最后,还提炼出解决类似问题的一般性原则。读了这本书,你仿佛和Herb Sutter这位大师面对面地进行了一场对话,亲历了他对你的指导和点拨。

关于本书的另一个特点,我想指出的是,作为C++标准委员会的委员,Herb Sutter在本书中强调了C++语言的最新标准和最新特性,强调了泛型程序设计和标准库的使用。在本书的所有示例中,Herb Sutter为我们提供的是清新的C++编程风格和纯正的现代C++代码和范例。

__________________

1. 确切地说,这是一套双CD专辑,收录的是贝多芬的D大调小提琴协奏曲和C大调“三重奏”协奏曲。

本书适合的读者对象是中高级程序员,但这并不说本书的内容高不可攀。作者并不是在讲述高深的语言特性和设计技巧,更没有对基础话题避而不谈;相反,有关基础知识的介绍、回顾和深化散见于本书的很多条款之中。只不过,这些条款的内容涉及的只是C++特性中的细节,它没有对C++的每一个特性、或每个特性中的每一个方面作全面的介绍。尽管如此,只要具备基本的C++功底和一定的程序设计经验,你完全可以理解和消化本书的所有内容。由于作者巧妙的组织和精心的选材,本书每一个条款的内容都独立而完整,它让你在深入学习C++语言特性时事半功倍。

因而,我相信,无论是有一定基础的C++爱好者,还是身经百战的专业程序员,本书都会为你带来收获;在你的C++程序设计生涯中,它是你的案头不可或缺的C++专著之一。

 致谢

 []

 

於春景

深圳蛇口,20024

 

 

 

 目录

  

vii

 

ix

前言

 

 

 

泛型程序设计与C++标准库

1

条款1:流

1

条款2Predicates,之一:remove()删除了什么?

6

条款3Predicates,之二:状态带来的问题

11

条款4:可扩充的模板:使用继承还是traits?

19

条款5typename

32

条款6:容器、指针和“不是容器的容器”

36

条款7:使用vectordeque

46

条款8:使用setmap

53

条款9:等同的代码吗?

59

条款10:模板特殊化与重载

64

条款11Mastermind

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

条款38typedef

228

条款39:名字空间,之一:using声明与using指令

231

条款40:名字空间,之二:迁徙到名字空间

234

 

 

后记

245

 

 

附录A:(在多线程环境下)并非优化

247

附录B:单线程String实现与多线程安全String实现的对比测试结果

263

 

 

参考文献

271

 

 

索引

273

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: exceptional c指的是超乎寻常的C语言,即在使用C语言进行编程时,达到了非凡的水平和能力。这包括但不限于熟练掌握C语言的语法和特性,理解C语言的底层机制和内存管理,编写高效且可靠的代码,解决复杂而困难的问题。拥有exceptional c能力的程序员通常能够编写高性能的程序,优化代码,改善资源利用效率,提高软件的质量和可维护性。 而more exceptional c则进一步指的是在exceptional c的基础上,更进一步的提升和发展。它可能包括对C语言更深层次的理解,对C语言编程范式、设计模式和最佳实践的掌握,能够设计和实现复杂的数据结构和算法,以及利用C语言的扩展功能和库实现创新的解决方案。 与exceptional c相比,more exceptional c更注重在C语言的高级特性上的应用,如面向对象的编程,泛型编程,元编程等。通过更深入的学习和研究,更出色的C程序员可以利用这些高级技术,进一步提高代码的可读性,可维护性和重用性。 总而言之,exceptional c是对熟练掌握C语言编程的基本要求,而more exceptional c则代表在此基础上进一步提升和发展,拥有更高级的技能和能力。 ### 回答2: exceptional c是指非常优秀的C语言代码,具有出色的设计和实现,能够在效率、可靠性和可读性等方面表现出色。这种代码通常具有良好的算法和数据结构选择,以及正确的错误处理机制。 而more exceptional c是指比exceptional c更加出色的C语言代码,更具有创新和突破性。它可能包含了前沿的编程技术、高级的数据结构和算法,以及更为复杂和深入的问题解决方案。这种代码可能会利用C语言的底层优势,充分发挥计算机性能并提供更高的效率。 在开发过程中,编写exceptional c代码需要遵循良好的编程习惯和规范,保持代码的可维护性和可扩展性。这种代码通常具有清晰的结构和注释,函数和变量命名规范恰当。同时,编写exceptional c代码也要注意错误处理和异常处理,确保代码的健壮性和可靠性。 而more exceptional c则需要更深入的编程知识和技巧。它可能涉及更多的底层编程,例如操作系统级别的代码或者底层硬件的访问。同时,more exceptional c还可能包含更复杂的算法和数据结构,以及高级的设计模式和架构思想。编写more exceptional c代码需要对C语言的特性和底层工作原理有深刻的理解和掌握。 总之,exceptional c和more exceptional c都是指在C语言中表现出色的代码,但more exceptional c更进一步,采用更高级的技术和解决方案,展现出更出色的能力和创新精神。 ### 回答3: exceptional c是指非常出色的c,可能是指一个人的能力或者品质在某个方面超越了常人,表现出非凡的才华或者特点。它强调了c的某种特别之处,使得它在众多同类中脱颖而出。 而more exceptional c则意味着更加出色的c,即在exceptional c的基础上进一步提升,突破了先前的界限,表现出更加突出的表现和才能。它可以指一个人在原有的基础上通过努力和不断学习进步,取得了更加卓越的成就,或者是指一个事物在原有的基础上通过创新和改进,达到了更高的水平。 总之,exceptional c和more exceptional c都表达了某种非凡和出色的意思,但more exceptional c更加强调在原有的基础上取得更高的成就和突破。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值