笔记的范围:第一篇的引言和1.1节
因为以前的读书习惯,我对这本书的开头抱着一种轻视的态度。自以为是的认为那不过是类似开场白那样的成篇废话。事实证明我错了。在不到四页的内容里。作者就一点不给面子的指出了我在读这本书之前的几个错误观点、
第一:对oop的理解,这里我不得不指出在国内大部分本科教材中把封装性作为oop的独有的特点之一、以至于让很多人(包括我)认为写了个class就进入了oop的大门,这本书就明确的指出数据的封装只是对象的特点。是ADT的结果,设计方法的划分中属于基于对象(object based),没有inheritance机制和dynamic binding(动态绑定)的扩展就根本谈不上oop。
第二:对c++的认识。作者明确指出c++是一种多种设计方法集于一体的语言。而我们更多的是把他作为一种oop的语言来学习,把c++理解为带类的c,个人认为这种错误的观点导致的一个严重的问题是,我们带着c的思想来学习c++,使得我们在应用过程中用的是c++东西。比如class。I/o流,但是我们思想还是c的,这使得我们难以接受oop以及其他设计方法;这使得我对认为学习c++,未必要学c的这种观点的真理性更深信不疑、
第三:对编程习惯的认识。在1.1节中作者提出了一个问题。而不是像很多教材千篇一律的以“hello world”开头。其实,我一直反对学习一种语言一上来就动手的习惯、正如这本书那样,从思维入手,对于任何问题都以一个工程的态度去面对,在这里作者提出了分而治之和独步求精的思想。对于一个还没养成坏习惯的初学者来说,这好处实在不可估量。 .