1

我正在尝试使用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;
}

我在这个功能中忽略了什么?

4

0 回答 0