繁体   English   中英

使用C ++运算符中的朋友功能无法访问私有成员

[英]Trouble accessing private members with friend function in c++ operator<< overload

所以我想重载<<操作符。 从我可以看到的所有来源看,语法都是正确的,但是eclipse不喜欢它。

我遇到了几个错误: 多项式:: PrivateStruct *多项式:: head是私有的

并且: struct Polynomial :: PrivateStruct是私有的。

我想将此结构保持私有状态以隐藏实现细节。

std::ostream& operator<<(std::ostream& outputStream, Polynomial& rhs)
    {
        Polynomial::PrivateStruct *p = rhs.head;
        //implementation details
        return outputStream;

    }

和声明:

friend std::ostream& operator<<(std::ostream& outputStream, const Polynomial& rhs);

声明和定义不匹配-一个引用const ,另一个引用非const。 匹配它们,您就可以开始了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM