前言 磨难往往是很好的一种学习方法。当您因失误而备受折磨时,很自然地会说“早知如此,何必当初!”如果您是一个程序员,肯定经历过这样的痛苦:在凌晨两点,当您费尽周折找到程序中的最后一个bug时,身心已疲惫不堪,因为您已经为此付出了两个星期的代价。 本书列举了大量有bug的程序,这些程序将有助于您从其他程序员的失误中吸取教训,从而减少自己程序中的bug。这些程序中的bug都是大部分程序员可能会遇到的常见bug,能够给您带来实际的编程体验。 在设计本书所列出的程序时,我们尽可能地做到使它们接近于实际的程序。每一个程序都力图完成一项简单的任务或执行一个简单的C++语言功能。虽然这些程序都不能运行,但它们的代码都较短,这样您就不必在一个拥有7.5万行的程序中寻找bug。 许多IT人士都知道,现在市场上有很多新的编译器,它们可以捕获大部分程序错误。但遗憾的是,仍有许多错误是编译器不能发现的。打个比方,拼写检查程序是用来查找拼写错误的。但是,如果单词DOG被错误地写为CAT,您能指出单词CAT(实际是DOG)中的拼写错误吗?很显然,不能。因为这个单词可顺利通过拼写检查程序。 因此请体验寻找程序中错误的乐趣。如果您在找错的过程中陷入困境,本书所提供大量的提示会帮助您找到问题之所在,而且最后还给出了答案。 需要提请您注意的是,实际的编程过程与本书中的学习安排是完全不同的,其中不可能存在任何错误提示,更不可能给出解决问题的答案。因此,您一定要掌握这些程序中的常见错误,力争在自己的程序中不会出现这些错误,从而提升自己的代码开发效率和软件质量。这也是本书的主要目的。