假设我们有一个名为的类memoryCounter
,它试图捕获由MyClass
类引起的内存泄漏。
class memoryCounter
{
public:
static int MyClassCount;
};
int memoryCounter::MyClassCount = 0;
MyClass
假设我们在构造函数和析构函数(以及它拥有的任何其他构造函数,还假设我们不修改MyClassCount
构造函数/析构函数之外的任何其他地方)的构造函数和析构函数中放入以下行:
MyClass()
{
memoryCounter::MyClassCount++;
}
virtual ~MyClass()
{
memoryCounter::MyClassCount--;
}
现在,我们是否可以绝对确定如果memoryCounter::MyClassCount
包含零,那么到目前为止我们分配的所有内存都已释放并且没有泄漏?或者是否存在变量包含零的情况,但会分配我们没有释放的内存(请考虑“MyClass”也是基类或派生类的情况)?