Не являющаяся другом, не являющаяся членом функция доступа к личному члену данных

Я пытаюсь использовать istream Функция ниже, чтобы получить доступ к числителю и знаменателю членов личных данных, однако, я получаю ошибки об их приватности. istream это функция, не являющаяся другом, не являющаяся членом (я не могу сделать ее другом). Я понимаю, что не могу напрямую получить доступ к частным пользователям, но не должен ссылаться на MyFraction разреши мне?

std::istream & operator>>(std::istream & sin, MyFraction & frac)

    {
        return sin >> frac.numerator >> frac.denominator;
    }

У меня есть добытчики (getNumerator() а также getDenominator()), однако, я также не могу получить доступ к членам. Я также получаю сообщение об ошибке:

неоднозначная перегрузка для оператора >>.

Мои геттеры возвращают по значению:

inline int MyFraction::getNumerator() const
{
    return numerator;
}

inline unsigned int MyFraction::getDenominator() const
{
    return denominator;
}

Что я пропускаю в этой функции?

0 ответов

Другие вопросы по тегам