c++ - 我的复制构造函数导致使用我的类的方法失败。有人可以看一下并告诉我我做错了什么吗?

标签 c++ oop class destructor copy-constructor

我的构造函数很好地创建了一个拷贝 - 但是当方法将 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/

相关文章:

c++ - 作为数据成员的范围 View

java - 列表 java 不适用于循环

c++ - 如何使用派生类中的函数而不将它们添加到基类中

c++ - 如何有条件地实例化不同的子类?

c++ - 是否有相当于 _aligned_realloc 的 linux

c++ - 如何解决中间 block 问题(考虑边缘 block 并在行中间留下任何 block )

c++ - 在 C 中处理来自 recv() TCP 的部分返回

c++ - 使用类c++的登录系统

ruby - 创建类关系

javascript - 当未在视口(viewport)中显示时从元素中删除类