绝佳的C++和面向对象的入门书
2007-12-24
这本书带领我走入了C++和面向对象的大门,Bruce Eckel独特的思路可以让读者理清面向对象的脉络,抓住面向对象的核心,同时又能学习到C++语言本身最重要的那些知识。
让我印象最为深刻的就是第一章就高屋建瓴地俯瞰了面向对象的核心思想。从抽象的演进讲到对象以及对象的接口,再慢慢揭开面向对象的核心:封装(信息隐藏),继承,多态。结合一些容易理解的示例(以Shape和Circle,Square的关系来讲解的,至今它仍是我最喜欢引用的关于继承和多态的例子),同时避开语言的细节,Bruce Eckel把面向对象的思想展现在读者面前。最后,Bruce还提到了异常处理,分析设计以及极限编程,并以C++为什么成功这一主题作为第一章的结束
第二章延续了第一章的思路,以C++的视角讲解了如何创建和使用对象。如果第一章是面向对象理论的鸟瞰,那么第二章就让读者以实践来认识面向对象。
之后开始了正式的C++讲解过程:C in C++讲述了C++中的那个C子集,并提到了和纯C的不同之处。然后,在读者有了基础后,Bruce开始逐渐展开C++语言的核心:数据抽象,信息隐藏,构造和析构,函数重载等等,同时不忘将第一章里的思想融入其中,提醒读者以对象的方式思考问题。
C++中比较困难的主题:如拷贝构造函数,虚函数及其实现内幕,模板等等都有专门的章节讲解。
总之,Thinking in C++将C++的核心讲解得很透彻,如果认真读了,绝对能成为C++领域的“入门级高手”。
本书还有第二卷,讨论了一些更加高深的C++主题:如异常处理,泛型编程等等,读完第一卷可以尝试一下。