您好,欢迎访问三七文档
读《C++沉思录》有感识字最多的人一定是最好的作家吗?能演奏最多音符的人一定是最好的音乐家吗?最勤于挥舞画笔的人一定是最好的画家吗?显然不是——这些观点很荒谬。然而,我们却经常认为,那些了解最多语言特性的就是最好的程序员。这一看法同样是荒谬的:编程工作中最困难的部分并不是去学习语言细节,而是理解问题的解决之道。《C++沉思录》是一本关于C++程序设计的书。说得具体点,它首先是一本关于程序设计的书,其次才是一本关于C++的书。从这个意义上讲,这本书与坊间大部分C++书籍都不一样,那些书所关注的是语言本身,而这本书却淡了很多关于程序设计技术方面的话题。一个作家必须学习如何讲述故事,同样,一个程序员也必须学习如何分析问题。这本书中包含了大量的问题,以及针对这些问题的解决方案。而它所展示的解决方案有一个共同的思想,那就是抽象——集中注意力,只关注问题中那些在当前背景下最为重要的部分。可以说,如果不以某种方式进行抽象,就不可能编写任何计算机程序,至此一点已经足以使“抽象”成为程序设计中最重要的单个思想。而C++支持好几种不同的抽象形式,其中最著名的有抽象数据类型、面向对象程序设计和泛型程序设计。为了更清楚地表达本书的核心思想,在《C++沉思录》中作者将全书划分为六篇:第一篇是对主题的扩展,这些主题遍布全书的其余部分。这部分讲述了作者运用C++工作的动机,先是提出问题,然后是从历史背景和发展上阐述原因以及重要性,更提出了抽象的概念。在这一篇中,并没有太多的代码,但是所展现的有关抽象和务实的基本思想贯穿本书,更重要的是,这些思想渗透了C++设计原则和应用策略。第二篇着眼于继承和面对对象编程,大多数人都认为这些是C++中最重要的思想。这部分让读者知道继承的重要性何在,它能做什么,为什么将继承对用户隐藏起来是有益的,以及什么时候要避免继承。第三篇是探索模板技术,作者认为这是C++里最重要的思想,因为这些模提供了一种特别的强大的抽象机制。它们不仅可以构造对所包含的对象类型一无所知的容器,还可以建立远远超出类型范畴的泛型抽象。第四篇谈到了库——包括库的设计和使用。它先是介绍了日常使用的库,再解释库设计和语言设计之间的相互关系。这其中还重点讲了抽象数据类型的概念以及与库的联系,并提出了类库是继承和模板扩展C++的方法之一。第五篇是一些特殊的编程技术。这是在对基础有了很好的理解以后,告诉读者如何把类紧密地组合在一起,或者说把它们尽可能地分离开。第六篇就是对本书所涉及的内容进行回顾和总结——通过复杂性获取简单性。对我来说,给这本书一个适合的评价超出了我现在的能力。究竟它能够为我的学习和工作带来怎样的启发,还需要很长时间的实践来验证。不过就目前而言,这本书的一些特色已经给我留下很深刻的印象。首先,作者对于C++有着居高临下的见识,对于C++的设计理念和实际应用有非常清晰的观点。众多纷繁复杂的C++特性如何组合运用,如何有效运作,什么是主流,什么是旁支,哪些是通用技术,哪些是特殊技巧,在书中有清晰明白的介绍。并且在这本书中,作者毫不含糊地吧C++的核心观念展现在读者面前,为读者引导,更多次强调,C++最基本的设计理念就是“用类来表示概念”,C++解决复杂的基本原则是抽象,面向对象思想是C++的手段之一,而不是全部,等等。其次,这本书在C++的教学方式上有独到之妙。作者循循善诱,娓娓道来,所举的例子虽然小,但是非常典型,切中要害,让你花费不大的精力就可以掌握相当多的东西。比如本书讲述面向对象编程时先后只讲了几项技术,举了两个例子,但是细细读来,你会对C++面向对象编程有一个基本的正确观念,知道应该用具体类型来隐藏一个派生层次,知道应该如何处理动态内存管理的问题。从这一点点内容中能够得到的收获,比看一大堆厚书都来的清晰深刻。对于STL的介绍,更是独具匠心。作者不是一上来就讲STL,而是把STL之前的那些类似技术一一道来,把优点缺点讲清楚,然后从道理上给你讲清楚STL的设计和运用,让你不仅之其然,而且知其所以然,胸有成竹。书虽不厚,我想更重要的东西不是这本书教给了我们什么技术。所谓授人以鱼不如授人以渔。这本书最大特点就在于,不仅仅告诉我们什么是答案,更重要的是告诉我们思考的方法,解决问的步骤和方向。书中遍布了大量的建议,正是这些建议,为这本书增添了永不磨灭的价值。
本文标题:读C++沉思录有感
链接地址:https://www.777doc.com/doc-2030812 .html