C++ 调试与面向对象分析设计
1. C++ 调试技术
1.1 使用不变式(Invariants)
在 C++ 编程中,不变式是一种用于确保对象处于有效状态的重要技术。通过定义 Invariants()
方法,可以在对象的构造、析构以及各种操作前后检查对象的状态。以下是一个使用不变式的示例代码:
#define DEBUG
#define SHOW_INVARIANTS
#include <iostream>
#include <string.h>
#ifndef DEBUG
#define ASSERT(x)
#else
#define ASSERT(x) \
if (! (x)) \
{ \
std::cout << "ERROR!! Assert " << #x << " failed\n"; \
std::cout << " on line " << __LINE__ << "\n"; \
std::cout << " in file " << __FILE__ << "\n"; \
}
#endif
class String
{
public:
// constructors
String();
String(const char *const);
String(const String &);
~String();