オペレーターをフレンド関数として実装する方が良いと読みました。+ 演算子関数が既にある場合に += 演算子をフレンド関数としてオーバーロードする方法:
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;
}