我的构造函数很好地创建了一个拷贝 - 但是当方法将 IntegerNumber 作为参数时,它停止工作。
我的构造函数:
IntegerNumber::IntegerNumber(const IntegerNumber &integerInput){
//Creates a copy of an Integer Number
//Set len and isNegative
len = integerInput.len;
isNegative = integerInput.isNegative;
//Fill integer with IntegerInput
integer = new char[len+1];
for(int i = 0; i <= len; i++)
integer[i]=integerInput.integer[i];
}
我的析构函数:
IntegerNumber::~IntegerNumber(){
//Destructs IntegerNumber
delete [] integer;
delete &len;
delete &isNegative;
}
我类(class)的数据成员:
private:
char *integer;
int len;
bool isNegative;
请尝试帮我弄清楚我的构造函数/析构函数可能出了什么问题,以至于程序停止但不会崩溃或中断?
最佳答案
你不想要这个:
delete &len;
delete &isNegative;
像这样删除实例变量是未定义的行为,所以你的程序可以停止
关于c++ - 我的复制构造函数导致使用我的类的方法失败。有人可以看一下并告诉我我做错了什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487986/