C++. Переопределение операторов.
Александр Ячменев

Нужна помощь в решении задачи. Нужно реализовать два оператора: унарный минус и унарный плюс. Сигнатура обязательно такая - Rational operator-() const { /* Реализация */ }.

Условие:
Дан класс Rational, который описывает рациональное число. В нем определены методы add, sub, mul и div, которые прибавляют к нему число, отнимают число, умножают на число и делят на число соответственно. Кроме того в нем определен метод neg, который меняет знак на противоположный.

struct Rational
{
    Rational(int numerator = 0, int denominator = 1);

    void add(Rational rational);
    void sub(Rational rational);
    void mul(Rational rational);
    void div(Rational rational);

    void neg();
    void inv();
    double to_double() const;

    Rational & operator+=(Rational const& r) {
        this->add(r);
        return *this;
    }

    Rational & operator-=(Rational const& r) {
        this->sub(r);
        return *this;
    }

    Rational & operator*=(Rational const& r) {
        this->mul(r);
        return *this;
    }

    Rational & operator/=(Rational const& r) {
        this->div(r);
        return *this;
    }

    Rational operator-() const {
        /* Релизация*/
    }

    Rational operator+() const {
            /* Релизация */
    }

private:
    int numerator_;
    int denominator_;
};
1 чел.