English

C++的巅峰体验

2002-07-03 来源:中华读书报 杨伟国 我有话说
这是我心仪已久的一本书。我相信很多读者也有同样的感受。

在所有的编程语言中,C++可以说是最为复杂的。它既是一门传统的编程语言,也是一门新的编程语言。说它是一门传统语言,是因为C++诞生已有将近20年的历史了,特别是最近10年来C++得到了快速的发展。C++是计算机软件领域中覆盖面最为广阔的编程语言。并且,与C++相关的智力投入也是其他任何一门语言所无法比的。人们对于C++的研究已经远远超出了对于一门编程语言所应该有的关注。所以,现在的C++已经非常成熟,大量的资源(文档、书籍、源代码等等)可供我们使用。说C++是一门新的编程语言,是因为在1998年C++被ISO(International Standards Organization)正式标准化,从此C++领域有了统一的标准,所有的编译器都将向标准靠拢(或者说,与标准兼容),这有利于我们写出可移植的C++代码来。同时C++标准也统一了新的C++标准库,为C++用户提供了最为基本的基础设施。C++经历了多年的发展,终于达到了一个相对稳定的版本,所以,我们应该用一种新的眼光来看待C++,而不再简单地把C++认为是C语言的超集。本书正是新版本C++的写照,通过本书,您可以重新审视C++语言,它纠正了我过去对于C++语言的一些误解。虽然我从1993年开始就一直在使用C++,但是直到阅读了这本书之后,我才从真正意义上全面地认识了C++语言。

本书的权威性无需我多说,看看本书原著的前言,了解了两位作者的背景之后,您就可以知道,这本书是经验和标准的完美结合。Stanley Lippman从1984年开始一直从事C++方面的工作,在C++的实现与应用方面有着丰富的经验。本书前两个版本的成功也说明了他在阐释C++语言方面的独到之处。Josée Lajoie从1990年开始成为C++标准委员会的一名成员,并且承担了很重要的职务。由于她的参与,毫无疑问,本书一定是与标准兼容的。讲述C++的书非常多,并且不乏优秀和经典之作。在如此众多的C++书籍中,本书仍具有不可替代的地位,我想主要的原因在于本书具有以下几个特色:

(1)内容广阔。从本书的规模(厚度)就可以看出这一点,C++语言融入了大量优秀的特性,其内容的丰富程度已经远不是C语言所能够及的。在所有的C++书籍中,本书的覆盖面是最为广阔的,从最基本的C++程序设计,到面向对象程序设计,以及基于模板的程序设计,面面俱到,而且讲解细致入微,值得仔细品味。

(2)许多实际的例子程序。纯粹的技术讲解总是非常枯燥,但是阅读本书并不感觉枯燥,因为作者在介绍每一部分内容的时候都结合一个实际的例子,读者通过这些例子能够很容易地掌握相应的技术要点,并且看到每一种技术的实际用法,这是本书之所以引人入胜的重要原因之一。

(3)叙述内容的安排。C++是一门多风格的程序设计语言(multiparadigm programming language),不仅支持面向对象程序设计,也支持其他的程序设计思想。本书的叙述结构正体现了C++的这种特点,作者从程序设计思想的角度分别讲述了C++的各种语言要素,使读者比较容易抓住C++语言的本质特征。

(4)与编译器无关,遵从C++标准。本书的内容并不特定于某一个C++编译器实现,而是适用于所有与C++标准兼容的编译器。作者在讲解过程中也指出了编译器的一些内部考虑,例如,编译器是如何在各种上下文环境中解析重载函数的、如何处理隐式类型转换的,等等,这些内容有利于加深读者对C++的理解。

(5)配套的练习。在每一节讲解之后,作者给出了一些练习,这些练习反映了这一节的中心内容,读者通过这些练习可以巩固所学的知识。所以,本书也可以被用作教材,用于系统全面地学习C++语言。

虽然本书的书名“C++Primer”的中文含义是“C++初级读本”,但是它绝对不是一本很轻松的入门教材,特别是关于名字空间、函数重载解析过程、模板机制和泛型算法(generic algorithms)等内容并不是一个C++初学者就能够很快掌握的。如果您以前没有看过其他的C++书籍,那么需要反复阅读多遍才能掌握本书讲述的内容;如果您已经有了C++的基础(比如,已经看过其他的C++入门书籍),那么阅读本书可以让您快速掌握C++的要点;如果您是一名有多年C++实践经验的程序员,那么阅读本书可以让您重新理解C++。总之,这是一本很好的学习和参考书籍,值得您反复阅读。但是,正如书名所指示的,它不是一本高级书籍。按照我个人的理解,它的技术水准应该在中等偏深一点的层次上。

有关C++的书籍和资料如此之多,所以,学习C++不一定非要阅读这本书,但是它可以加快您学习的步伐,并且帮助您深入而全面地理解C++。既然您已经看到了这本书,那就不要错过吧。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有