我试过了所有的东西,但是代码不起作用,我不明白为什么。使用'删除'操作符清除内存时出现'Debug Assertion Failed'错误
我有两个类。 这一个是基类:
class Vegetables
{
private:
char *nameStr;
char *countrySrc;
int seasonRd;
public:
Vegetables()
{
cout << "Default constructor for Vegetables" << endl;
nameStr = new char[20];
nameStr = "Unknown";
countrySrc = new char[20];
countrySrc = "Unknown";
seasonRd = -1;
}
virtual ~Vegetables()
{
delete[]nameStr; //Here happens the error (_crtisvalidheappointer(block))
delete[]countrySrc;
cout << "Destructor for Vegetables" << endl;
}
};
它继承类的继承单位“:
class InhUnit : public Vegetables
{
private:
Delivery delivery_;
Vegetables vegetables;
int quantity;
int price;
int delivPrice;
public:
InhUnit() :Vegetables(),delivery_(OwnCosts), vegetables(), quantity(-1), price(-1), delivPrice(-1)
{
cout << "Default constructor for Inherited Unit" << endl;
}
~InhUnit()
{
cout << "Destructor for Inherited Unit" << endl;
}
};
什么可能是这个错误弹出的原因吗?
非常感谢您! –