使用c ++运算符中的友元函数访问私有成员时遇到问题<<超载

时间:2013-11-01 21:20:34

标签: c++ operator-overloading friend-function

所以我试图重载<<运营商。从我可以看到的所有来源,语法是正确的,但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);

1 个答案:

答案 0 :(得分:6)

声明和定义不匹配 - 一个引用const,另一个引用非const。匹配他们,你很高兴。