C++ 错误C2248:&x27;标准::基本操作系统<_元素,_Traits>;::基本ios';:无法访问类';标准::基本操作系统<_元素,_Traits>';

C++ 错误C2248:&x27;标准::基本操作系统<_元素,_Traits>;::基本ios';:无法访问类';标准::基本操作系统<_元素,_Traits>';,c++,C++,得到这个错误,我很确定它在操作符ostream操作符操作符中,您需要通过引用而不是值返回ostream。它试图调用构造函数。 也可以传递“a”作为引用: ostream& operator<<(ostream & sout,const CRational& a) 谢谢你的帮助。但我遇到了一个新问题。当我使用这个函数时,数字会以递归的方式向后打印。 ostream operator<<(ostream & sout,const CRatio

得到这个错误,我很确定它在操作符
ostream操作符
操作符中,您需要通过引用而不是值返回ostream。它试图调用构造函数。
也可以传递“a”作为引用:

ostream& operator<<(ostream & sout,const CRational& a)

谢谢你的帮助。但我遇到了一个新问题。当我使用这个函数时,数字会以递归的方式向后打印。
ostream operator<<(ostream & sout,const CRational a)
       ^ You are trying to return by value
ostream& operator<<(ostream & sout,const CRational& a)
void CRational::print(ostream & sout) const
{
    if(m_denominator == 1)
        sout << m_numerator;
    else
        sout << m_numerator << "/" << m_denominator;
}