我正在尝试使用下面的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;
}
我在这个功能中忽略了什么?