Перегрузка оператора с++

Нужно перегрузить оператор -= (уменьшение стороны прямоугольника на n). Создала класс Rectangle, дружественную функцию, но она у меня не работает, стороны не уменьшаются, не пойму почему:

void operator -= (Rectangle rect, double n)
{
    rect.a -= n;
    rect.b -= n;
}

int main()
{
    const int k = 5;
    Rectangle array[k];
    array[0].SetSize(2.0, 4.0);
    array[1].SetSize(3.0, 2.0);
    array[2].SetSize(5.0, 3.0);
    array[3].SetSize(2.0, 5.0);
    array[4].SetSize(4.0, 4.0);
    for (int i = 0; i < k; i++) {
        array[i] -= 1.0;
        cout << array[i].GetA() << endl;
    }

    system("pause");

    return 0;
}

Ответы (1 шт):

Автор решения: Harry

А так не хотите?

Rectangle& Rectangle::operator -= (double n)
{
    a -= n;
    b -= n;
    return *this;
}


Rectangle& operator -= (Rectangle& r, double n)
{
    r.a -= n;
    r.b -= n;
    return r;
}
→ Ссылка