1.13 小结

本章希望使读者对面向对象程序设计和C++的大量问题有一定的感性认识,包括为什么OOP是不同的,为什么C++特别不同,什么是OOP方法的思想,和最终当公司转到OOP和C++时会遇到的各种问题。

OOP和C++可能不一定对每个人都适合。对自己的需要作出估计,并决定是否C++能很好地满足自己的需要,或者是否用别的程序设计系统(包括当前正在用的这种系统)会更好,这是很重要的。如果读者知道,在可预见的未来自己的需要非常专门化,如果有特殊的约束,不能由C++满足,那么可以自己研究替代物[1]。即便最终选择了C++,也至少应当懂得这些选择是什么,并应当对为什么取这个方向有清晰的看法。

我们已经知道过程型程序的概貌:数据定义和函数调用。为了理解这样程序的含义,必浏览函数调用和底层概念,在头脑中创建一个模型。这就是我们设计过程型程序时需要中间描述的原因,这些程序往往是混乱的,因为表达的术语更偏向于计算机而不是所解决的问题。

因为C++对C语言增加了许多新概念,所以我们自然会认为在C++中的main()会比等价的C程序复杂得多。在这里,我们将很高兴地看到:一个写得好的C++程序一般比等价的C程序简单得多和更容易理解。我们将看到的是描述问题空间概念的对象的定义(而不是计算机描述的问题)和发送给这些对象的消息,这些消息描述了问题空间的活动。面向对象程序设计的乐趣之一是,对于设计良好的程序,通过读程序可以很容易理解它。通常,这里代码更少,因为我们的许多问题都能通过重用库代码解决。

[1]我特别推荐Java(http://java.sun.com)和Python(http://www.Python.org)。