Я читал, что реализация операторов как функция друга будет лучше. Как перегрузить оператор + = как функция друга, когда у меня уже есть + оператор-функция:Перегрузка + = оператор как функция друга
friend Dollar operator+(const Dollar &p1, const Dollar &p2);
friend Dollar &operator+=(const Dollar &p1, const Dollar &p2);
Это неправильно, так как мне нужно возвращать ссылку на переменный.
Dollar &operator+=(const Dollar &p1, const Dollar &p2)
{
return p1+p2;
}
Что такое путаница, похоже, что вы возвращаете ссылку – aaronman
Что обычно делается в обратном направлении: вы определяете 'operator +' в терминах 'operator + =' –
Да, вы правы! Но что, если обе функции должны быть функцией друга, в отличие от функции-члена? –