访问私有数据成员的非朋友,非成员函数

时间:2014-04-07 17:40:35

标签: overloading operator-keyword non-member-functions

我正在尝试使用下面的istream函数来访问私有数据成员分子和分母,但是,我收到有关它是私有的错误。 istream是非朋友,非会员功能(我无法成为朋友)。我知道我不能直接访问私人会员,但是我不应该引用MyFraction允许我这样做吗?

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

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

我有getter(getNumerator()getDenominator()),但是,我无法以这种方式访问​​成员。我也得到一个错误:

  

运营商的模糊过载>>。

我的吸气者确实按价值返回:

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

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

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

0 个答案:

没有答案