
著译作品
《C++必知必会》
C++ Common Knowledge: Essential Intermediate Programming, by Stephen Dewhurst
荣耀 译
译序
尽管C++越来越像是“专家专用”的语言,精通它需要付出极大的努力,然而并非每一个人都需要成为C++语言专家 。对于大多数人而言,学习C++的目的是为了“致用”,而非研究语言本身。我们的精力应该放在有效地掌握编程必备知识上,以便能够胜任目标领域的软件开发。是的,职业程序员往往更应该是“领域专家”而非“语言专家”。
本书提供了C++程序员所必须具备的“常识”。 这里所说的“常识”并非意味着简单或平庸,而是指“必不可少”,事实上,有些内容相当高级,比如设计模式和泛型编程。本书对散布于许多其他C++书籍中的知识进行了精心挑选,最终浓缩成63个条款。每一个条款相对独立,可以随机查阅。许多条款内部还含有交叉索引,便于你加深对该主题的理解。
这些条款涉及主题范围较广,除了指针操作、面向对象、异常处理以及内存分配等主题外,对于现代C++编程技术亦有很好的描述,其中仅设计模式就占了好几个条款。除了一个总论性的条款外,另还具体介绍了Prototype、Factory Method、Command、Template Method等经典模式,而Trait、Policy以及智能指针亦可归入这个范畴。作者“短、平、快”式的介绍,可以使你迅速掌握这些常用模式的概念和用法。
现代C++程序员应该像熟悉面向对象编程那样熟悉模板和泛型编程。本书中,模板和泛型编程内容占了条款总数近三分之一,其中包括:类模板显式特化、模板局部特化、类模板成员特化、成员模板、嵌入的类型信息、模板的模板参数、模板实参推导、重载函数模板等等。这些都是进行泛型编程不可或缺的知识。
顺带一提,作者Steve Dewhurst是贝尔实验室C++元老之一,有着20多年C++应用经验,所解决的问题涉及多个领域,并是两款C++编译器的作者。他的文风一向简练明快,并不失尖锐。阅读本书,可以给你带来“拨开迷雾见青天”的感觉。
本着对国内C++应用现状的了解,我认为本书首先适合业界程序员用作快速参考。一些程序员项目经验不少,但对C++的使用仅限于一小套子集,而且往往是一套原始的子集。这本小册子可以快速弥补这方面的知识结构缺陷。作者奉行“有所为、有所不为”的指导思想,忽略了复杂而很少使用的细节,便于你直奔主题,抓住重点。此外,有了实战经验作为后盾,本书很容易上手。
对于已经系统地学习过一门C++课程的在校大学生来说,这本小书可以开阔你的眼界。如果你的C++基础尚不足以顺畅地阅读书中部分条款,读来如雾里看花,或因作者点到为止而感觉意犹未尽,你可以考虑选读“参考书目”中列出的书籍,它们大都有高品质的中文版。
在沉寂许久之后,一批优秀的C++新作终于陆续面世,我有幸参与翻译包括《C++ Common Knowledge》、《Imperfect C++》以及《C++ Template Metaprogramming 》等在内的几本佳作。希望在第一时间完成翻译的这本新书,能够给期待已久的您带来新鲜的快乐!
荣耀
2005年6月
南京师范大学
www.royaloo.com
目录
- 条款1 数据抽象
- 条款2 多态
- 条款3 设计模式
- 条款4 标准模板库
- 条款5 引用是别名而非指针
- 条款6 数组形参
- 条款7 常量指针与指向常量的指针
- 条款8 指向指针的指针
- 条款9 新式转型操作符
- 条款10 常量成员函数的含义
- 条款11 编译器往类里放了些什么
- 条款12 赋值和初始化并不相同
- 条款13 拷贝操作符
- 条款14 函数指针
- 条款15 指向类成员的指针并非指针
- 条款16 指向成员函数的指针并非指针
- 条款17 处理函数和数组声明符
- 条款18 函数对象
- 条款19 Command模式与好莱坞法则
- 条款20 STL函数对象
- 条款21 重载与重写并不相同
- 条款22 Template Method模式
- 条款23 名字空间
- 条款24 成员函数查找
- 条款25 实参相依的查找
- 条款26 操作符函数查找
- 条款27 能力查询
- 条款28 指针比较的含义
- 条款29 虚构造函数与Prototype模式
- 条款30 Factory Method模式
- 条款31 协变返回类型
- 条款32 禁止拷贝
- 条款33 制造抽象基类
- 条款34 禁止或强制使用堆分配
- 条款35 Placement New
- 条款36 特定于类的内存管理
- 条款37 数组分配
- 条款38 异常安全公理
- 条款39 异常安全的函数
- 条款40 RAII
- 条款41 New、构造函数和异常
- 条款42 智能指针
- 条款43 auto_ptr非同寻常
- 条款44 指针算术
- 条款45 模板术语
- 条款46 类模板显式特化
- 条款47 模板局部特化
- 条款48 类模板成员特化
- 条款49 采用typename消除歧义
- 条款50 成员模板
- 条款51 采用template消除歧义
- 条款52 针对类型信息的特化
- 条款53 嵌入的类型信息
- 条款54 Traits
- 条款55 模板的模板参数
- 条款56 Polices
- 条款57 模板实参推导
- 条款58 重载函数模板
- 条款59 SFINAE
- 条款60 泛型算法
- 条款61 你只实例化你使用的东西
- 条款62 包含哨位
- 条款63 可选的关键字
出版信息
- 书 号: ISBN 7-115-14101-0/TP • 5034
- 页 数: 202
- 开 本: 800 X 1000 1/16
- 定 价: 29元
- 印 数: 未知
- 出版日期: 2005年12月
- 出 版 社: 人民邮电出版社