Перегрузка оператора с++
Нужно перегрузить оператор -= (уменьшение стороны прямоугольника на 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;
}