学习程序语言根本大法是一回事:学习如何以某种语言设计并实现高效程序则
是另一回事。这种说法对C++ 尤其适用,因为C+十以拥有罕见的威力和丰富的表
达能力为傲。只要适当使用,C++ 可以成为工作上的欢愉伙伴。巨大而变化多端的
设计可以被直接表现出来,并且被有效实现出来。一组明智选择并精心设计的
classes, functions 和templates 可使程序编写容易、直观、高效、并且远离错误。如
果你知道怎么做,写出有效的C++ 程序并不太困难。然而如果没有良好培训, C++
可能会导致你的代码难以理解、不易维护、不易扩充、效率低下又错误连连。
本书的目的是告诉你如何有效运用C++ 。我假设你己经知道C++ 是个语言并
且已经对它有某些使用经验。这里提供的是这个语言的使用导引,使你的软件易理
解、易维护、可移植、可扩充、高效、并且有着你所预期的行为。
我所提出的忠告大致分为两类z 一般性的设计策略,以及带有具体细节的特定
语言特性。设计上的讨论集中于"如何在两个不同做法中择一完成某项任务"。你
该选择inheritance (继承)还是templates (模板) 7 该选择public 继承还是private
继承?该选择private 继承还是composition (复合) 7 该选择member 函数还是
non-member 函数?该选择pass-by-value 还是pass-by-reference7 在这些选择点上做
出正确决定很重要,因为一个不良的决定有可能不至于很快带来影响,却在发展后
期才显现恶果,那时候再来矫正往往既困难又耗时间,而且代价昂贵。
1