+=
왼쪽 객체 자신의 상태를 바꾸고 *this 참조를 반환한다.
상태를 바꾸는 로직은 +=에 모으고, +는 복사본을 만든 뒤 +=를 재사용하면 두 연산의 의미가 어긋나지 않는다.
왼쪽 객체 자신의 상태를 바꾸고 *this 참조를 반환한다.
+는 원본을 건드리지 않도록 왼쪽 값을 복사한다.
복사본에 +=를 적용해 검증된 변경 규칙을 그대로 쓴다.
계산이 끝난 새 객체를 값으로 반환해 표현식에 맞춘다.
두 연산자를 따로 구현하면 경계 조건이 갈라지기 쉽다. 한쪽을 기준 구현으로 두는 편이 유지보수에 유리하다.