好书推荐 好书速递 排行榜 读书文摘

C++编程剖析

C++编程剖析
作者:[美]Herb Sutter
译者:刘未鹏
副标题:问题、方法和设计准则
出版社:人民邮电出版社版
出版年:2010-11
ISBN:9787115240996
行业:计算机
浏览数:54

内容简介

软件“风格”所要讨论的主题是如何在开销与功能之间、优雅与可维护性之间、灵活性与过分灵活之间寻找完美的平衡点。在本书中,著名的C++大师Herb Sutter给出了40个编程问题,其目的是为了使读者不仅“知其然”,更要“知其所以然”,并帮助读者在软件开发中进行正确的决策。

本书是围绕实际问题及其解决方案展开论述的,对一些至关重要的C++细节和相互关系提出了新的见解,为当今的关键C++编程技术(如泛型编程、STL、异常安全等)提供了新的策略。读者会在书中找到下列问题的答案。

 可以从STL本身学习哪些库设计的知识?

 如何避免削弱甚至损害模板代码的通用性?

 为什么不应该对函数模板进行特化?正确的做法是什么?

 异常安全如何超越try和catch语句?

 什么情况下应当“泄漏”一个类的私有成分,怎么做?

 如何让一个类不受版本变动的影响?

 使用标准库容器的实际内存开销是多少?

 如何使用const才能真正优化代码?

 内联对程序性能有何影响?

 为什么有些看似错误的代码实际上却能够通过编译且运行得很好?为什么我们要关心这种情况?

 std::string的设计有什么问题?

本书使读者能够在设计、架构和编码的过程中保持良好的风格,从而编写出更健壮和更高效的C++软件。

......(更多)

作者简介

Herb Sutter ISO C++标准委员会主席,C/C++ Users Journal杂志特邀编辑和专栏作家,Microsoft Visual C++架构师,领导.NET环境下C++语言扩展的设计工作。除本书外,他还撰写了三本广受赞誉的图书:C++ Coding Standards、Exceptional C++和More Exceptional C++。

译者简介:

刘未鹏 毕业于南京大学软件学院,热爱C++,长期关注C++前沿技术,对C++有较深的研究。曾在《程序员》杂志上发表文章数篇,译有Imperfect C++(与荣耀合译)。个人blog为,邮箱pp_liu@msn.com。

......(更多)

目录

泛型编程与C++标准库 1

第1条 vector的使用 2

第2条 字符串格式化的“动物庄园”之一:sprintf 9

第3条 字符串格式化的“动物庄园”之二:标准的(或极度优雅的)替代方案 14

第4条 标准库成员函数 23

第5条 泛型性的风味之一:基础 26

第6条 泛型性的风味之二:够“泛”了吗 30

第7条 为什么不特化函数模板 36

第8条 友元模板 42

第9条 导出限制之一:基础 51

第10条 导出限制之二:相互影响,可用性问题以及准则 58

异常安全问题及相关技术 67

第11条 try和catch 68

第12条 异常安全性:值得吗 72

第13条 对异常规格的实际考虑 75

类的设计、继承和多态 83

第14条 顺序,顺序 84

第15条 访问权限的使用 88

第16条 (几乎)私有 93

第17条 封装 101

第18条 虚拟 110

第19条 对派生类施加规则 118

内存和资源管理 129

第20条 内存中的容器之一:内存管理的层次 130

第21条 内存中的容器之二:它到底有多大 133

第22条 进行new操作,也许会抛出异常之一:new的方方面面 140

第23条 进行new操作,也许会抛出异常之二:内存管理中的实际问题 148

优化和效率 155

第24条 常量优化 156

第25条 再论内联 161

第26条 数据格式和效率之一:什么时候压缩是真正重要的 168

第27条 数据格式和效率之二:(甚至更少的)位操纵 172

陷阱、缺陷和谜题 179

第28条 不是关键字的关键字(或者:另一种注释) 180

第29条 这是初始化吗 186

第30条 要么double要么彻底完蛋 191

第31条 狂乱的代码 194

第32条 小小的拼写错误?鬼画符似的语言以及其他奇形怪状的东西 199

第33条 操作符,无处不在的操作符 202

风格案例研究 207

第34条 索引表 208

第35条 泛型回调 218

第36条 构造式union 226

第37条 分解std::string之一:概观std::string 242

第38条 分解std::string之二:重构std::string 247

第39条 分解std::string之三:给std::string瘦身 255

第40条 分解std::string之四:再论std::string 259

参考文献 267

索引 271

......(更多)

读书文摘

在考察任何函数的语义的时候,最值得注意的一个方面就是异常安全性,包括它提供什么程度的异常安全保证等。

考虑到目前的工作正向着下一代c++标准(c++0x)推进,所以现在正是时候来考察一下,我们在当前标准(c++03)下获得的经验告诉我们能做些什么,以及从这些经验当中我们学到了那些东西。

......(更多)

猜你喜欢

点击查看