Не являющаяся другом, не являющаяся членом функция доступа к личному члену данных
Я пытаюсь использовать 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;
}
Что я пропускаю в этой функции?