
前言
C++编程调试秘笈
敏锐的读者可能会根据本书的英文书名《Safe C++》推断出C++编程语言多少是有点儿不安全的。这确实是很灵敏的感觉!并且非常正确。C++语言可能导致程序员出现所有类型的错误,例如访问一个动态分配的数组边界之外的内存,或者从那些从未初始化过的内存进行读取,或者分配了内存但忘了销毁它。简而言之,程序员在使用C++进行编程的时候,会有很大的几率搬起石头砸自己的脚。很可能一切都非常顺利,程序却突然崩溃,或者产生不可理喻的结果,或者出现了计算机术语中称为“不可预料的行为”。因此,从这层意义上说,C++语言在本质上是不安全的。
本书讨论了程序员在C++编程中所犯的一些最为常见的错误,并提供了避免这些错误的方法。在过去的岁月里,C++社区积累了许多优秀的编程实践。在编写本书时,作者收集了其中的一些实践,并对它们进行了稍微的修改,另外增加了作者的一些实践。作者希望这些作为缺陷捕捉策略的规则集能够达到事半功倍的效果。
不可否认的真相是,任何比“Hello, World”复杂得多的程序都可能包含一些错误,或可以充满感情色彩地称之为缺陷(bug)1。编程的一个很大课题是怎样减少缺陷的数量,同时又不至于明显延缓开发进程使之陷入停顿。为此,我们需要回答下面这个问题:应该由谁来捕捉这些缺陷?