咨询培训 著译作品关于荣耀 Bjarne Stroustrup 网络资源 九炉堂 日志联系站内搜索首页

著译作品

《C++必知必会》

C++ Common Knowledge: Essential Intermediate Programming, by Stephen Dewhurst

荣耀 译

www.royaloo.com

译序

尽管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月
  • 出 版 社: 人民邮电出版社