如何使用重载运算符合并两个数组?

时间:2015-03-08 22:19:41

标签: c++ arrays class merge operator-overloading

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。

2 个答案:

答案 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;
}