English

不学C(中)

2001-10-24 来源:中华读书报  我有话说
我在这里要推介的这本书,不是因为它曾经在1995年获得过美国《软件开发》杂志的Jo lt Aw ard and Pro du c tiv ity Aw ard s全球软件业最杰出图书奖项,也不是因为它的作者目前正担任美国软件开发会议C++和Jav a小组的主席并且是ANSI/ISO C++委员会的创始成员之一。是的,我在这里要推介的就是Bru ce Eck e l的巨著Th ink in g In C++(Pren tice H a ll,1995年2月第一版,2000年4月第二版),它的简体中文版《C++编程思想》(机械工业出版社,2000年1月第一版,根据1995年第一版翻译,笔者在介绍的过程中凡涉及到两个版本有差异的地方均以Pren t ice H a ll 2000年4月第二版为准)也已经在内地发售。我向大家推介这本书的原因只有一个:在C++作为面向对象的编程语言领域里,无出其右者。

即便是在有多年编程经验的程序员中,也很少有人能够像Bru ce Eck e l那样把OOP(O b jec t-O r ien ted Pro g ram m in g,面向对象编程)理解得那样透彻。作者在前言中首先就提出:“与任何人类语言一样,C++提供了一种表达思想的方法。如果这种方法是成功的,那么当程序变得更大、更复杂时,该方法应当明显地表现出比其他语言更容易和更灵活的优点。”Bru ce Eck e l认为学习C++不仅仅是学会使用C++来编写程序代码,更重要的是要学会用C++的语言来思考问题(就好比说学习英语,只能够翻译并不能说已经掌握了这门语言,真正到了能够用英语思考的阶段才是达到了完全掌握的境界)。在这本书中,作者讨论编程问题的时候,都进而研究这个问题、研究如何用C++解决这些问题,在每个章节中在用C++解决一类问题的基础上解释C++语言性能,通过这样的方法引导读者从掌握C开始,在读者的头脑中建立一个模型来理解这种语言,逐步把C++变成读者头脑中“自己的”语言。让读者能够在遇到问题的时候,对问题进行抽象和分类,归纳到C++的语言模型中去推导答案——这就是Th ink in g In C++。

在本书的结构上,作者从抽象的演化过程开始讲起,讲到了抽象到对象的过程,继而又讲解了对象的继承、多态与接口、应用的隐藏保护与复用、对象的创建与清除及异常处理等,让从来没有接触过面向对象编程、没有接触过对象概念的读者能够从整体上理解“对象”。在接下来的部分,作者从编译和编译器开始引导读者一步步地前进,直到编写出自己的第一个C++程序“H e llo W o r ld!”,通过这个部分作者讲解了对象的生成与使用。在“C++中的C”一章中,作者详细阐释了C语言的语法,随后通过“数据抽象”、“应用隐藏保护”、“初始化与清除”、“功能加载与缺省参数”等章节把读者从面向过程的C语言带到全新的面向对象编程的境界中。另外作者还就常量、内置函数、名域控制、指针、对象的动态生成、继承、多态、模板等进行了详细的解说。为了配合教学的进行,作者使用的例子都与相应的教学内容保持一致,有的虽然看上去比较“幼稚”,但对于读者理解相关部分的内容确有很大的帮助。

在本书中,作者使用的是比较典型的“目标+教学内容+小结+练习”的模式,从一个知识要点的简介开始,通过概念的阐释和实例讲解来把相应的知识要点讲解清楚,随后对该部分的内容进行简明扼要的小结,让读者根据作者的提示进行知识要点回顾,然后再根据练习题对学到的东西进行巩固和更深入的理解。

虽然说面向对象编程更接近人类的思维方式,但是面向过程编程却更容易被人们理解和掌握,很多C学得好的人在向C++迁移的时候往往都会感到困惑。但是Bru ce Eck e l却给所有没有学习过面向对象编程的人提供了一个入门和提高的捷径——这就是Th ink in g In C++……

如果没有Bru ce Eck e l,相信世界上会有很多程序员仍在面向对象的编程的门外彷徨。他的Th ink in g In C++、Th ink in g In Jav a(我将在以后关于Jav a的图书推介部分专门撰文谈这本书)、C++In sid e&am p;O u t、U sin g C++、C om pu te r In te r face w ith Pasca l&am p;C、Black Be lt C++,M as-te r?s C o llec tio n、Th ink in g In Pa tte rn s(撰写中)等书把面向对象的观念和程序设计清晰条理地结合了起来,教人们如何将人类的思维方法和计算机程序设计统一起来,突破了过程语言编程对程序员思想方法的禁锢,为程序员们展示了一个全新的软件设计境界。目前Bru ce Eck e l担任M indV iew In c.的总裁,如果读者想了解更多关于作者及其著作的情况,可以访问他的个人网站h ttp://w w w. b ru ceeck e l. com。

手机光明网

光明网版权所有

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

光明网版权所有