出于某种原因,当我为我的更新类使用析构函数时,会显示调试断言失败消息...
这是我的更新类,为简洁起见省略了一些代码。放在头文件中:
using namespace std;
class Update
{
private:
int day, month, year;
static const int FIELD_SIZE = 3, DEFAULT_DAY = 12, DEFAULT_MONTH = 12,
DEFAULT_YEAR = 1999, DAYS_IN_MONTH = 30, MONTHS_IN_YEAR = 12, DAYS_IN_YEAR = 365;
int * date;
public:
static int dateUpdate;
Update(int D, int M, int Y)
{
day = D;
if (day < 1 || day > DAYS_IN_MONTH)
day = DEFAULT_DAY;
month = M;
if (month < 1 || month > MONTHS_IN_YEAR)
month = DEFAULT_MONTH;
year = Y;
if (year < 1)
year = DEFAULT_YEAR;
date = new int [FIELD_SIZE];
date[0] = day, date[1] = month, date[2] = year;
dateUpdate++;
}
~Update()
{
delete [] date;
dateUpdate--;
}
};
这是我在 cpp 文件中的测试器类:
#include <iostream>
#include "Update.h"
int Update::dateUpdate = 0;
int main()
{
Update u1(29, 12, 2000);
u1.Update::~Update();
return 0;
}
我已经阅读了其他涉及调试断言失败的问题,但有些事情告诉我调试断言失败可能以各种方式发生。结果,我几乎不知道为什么会为我的代码显示错误消息......我的析构函数是否有问题,正如我目前所怀疑的那样?非常感谢您提前提供的帮助!