## 17.7.1 Overloading Compound Assignment Operators (`+= *=`, etc.)

- Never supplied automatically
- Use existing arithmetic and assignment operators to define compound operator
- E.g.: `+=` for `Fraction`

>     Fraction& Fraction::operator+=(const Fraction& right)
>     {
>        top = top * right.denominator() + bottom * right.numerator();
>        bottom *= right.denominator();
>        normalize();
>        return *this;
>     }

prev |top |next