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