在你学习C++的过程中或许应该考虑的“规则”。随着你变得更加熟练,你将能把它转化为某种更适合你的那类应用系统或者你自己的程序设计风格的东西。它们有意被写的很音稀间,因此都缺乏细节。请不要太拘泥于它们的字面意义。要写出一个好程序需要智慧、品味和耐性。你不会第一次就能把它搞好的。 [1]在编写程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想: [a]如果你能把“它”看成一个独立的概念,就把它做成一个类。 [b]如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象。 [c]如果两个类有共同的界面,将此界面做成一个抽象类。 [d]如果两个类的实现有某些显著的共同东西,将这些共性做成一个基类。 [e]如果一个类是一种对象的容器,将它做成一个模板。 [f]如果一个函数实现对某容器的一个算法,将它实现为对一族容器的可用的模板函数。 [g]如果一组类、模板等互相之间有逻辑联系,将它们放进一个名字空间里。 [2]在你定义一个并不是实现某个像矩阵或得数这样的数学对象的类时,或者定义一个低层的类型如链接表的时候: [a]不要使用全局数据(使用成员)。 [b]不要使用全局函数。 [c]不要使用公用数据成员。 [d]不要使用码元,除非为了避免[a]或[c]。 [e]不要在一个类里面放“类型域”;采用虚函数。 [f]不要使用在线函数,除非作为效果显著的优化。
|