class Array
{
public:
Array(int sze)// default constructor
{
size = sze;
ptr = new int [size];
}
//.......
Array operator += (Array & a1, Array & a2)
{
//....
return 0;
}
例如,如果array1包含 1,2,5,9,12,15 和array2包含 3,4,7,13,19,21,25 然后执行声明 array1 + = array2 array2将保持不变,并且array1将包含 1,2,3,4,5,7,9,12,13,15,19,21,25。
答案 0 :(得分:2)
Array& operator += (const Array & a2)
{
//....
return this;
}
它应该有1个参数。
一个简单的方法是将this->ptr
的所有内容复制到临时数组中,然后删除ptr的内容以适应旧内容+新内容,为this->ptr
分配更大的内存然后从temp数组和a2的内容中复制内容,最后将引用返回this
。
答案 1 :(得分:0)
合并两个数组的简单方法:
Array & Array::operator +(const Array &sm){
int i,j;
this->_size = _size + sm._size;
for(i = 0; i < _size; i++);
this->data[i] = data[i];
for(j = _size; j < sm._size;j++,i++);
this->data[i] = sm.data[i];
return *this;
}