I am doing this assignment for class and we have to use arrays. I need to overload my object which contains an array of another object and I want to concatenate them. Let's say I want to support the overloading for mySecondObj class, I tried something like this but its not working.
mySecondObj{
public:
.
.
.
.
mySecondObj operator+(const mySecondObj& rhs);
private:
.
.
.
.
myFirstObj** objList;
}
//addition overloading function
mySecondObj mySecondObj::operator + (const mySecondObj& rhs){
myFirstObj** temp = new myFirstObj*[this->size + rhs.size];
std::copy(this->JPList,this->JPList + this->size, temp);
std::copy(rhs.JPList,rhs.JPList + rhs.size, temp + rhs.size);
delete[] objList;
objList = temp;
return *this;
}
from what I understand I am using it as a member function and am modifying the left hand side object.
edit:
testcode:
mySecondObj test1 = mySecondObj(arr1, arrSize1);
mySecondObj test2 = mySecondObj(arr2, arrSize2);
.
.
.
mySecondObj test3 = test1 + test2;
This is the code im using to test the function, test1 and test2 does what's expected and when I try to add them I get an exit code -1073741819 (0xC0000005)
I've also changed my code
//addition overloading function
mySecondObj mySecondObj::operator + (const mySecondObj& rhs){
myFirstObj** temp = new myFirstObj*[this->size + rhs.size];
std::copy(this->JPList,this->JPList + this->size, temp);
std::copy(rhs.JPList,rhs.JPList + rhs.size, temp + rhs.size);
return mySecondObj(temp,this->size + rhs.size);
}
User contributions licensed under CC BY-SA 3.0