【问题标题】:Trouble accessing private members with friend function in c++ operator<< overload在 C++ 运算符<<重载中使用友元函数访问私有成员时遇到问题
【发布时间】:2013-11-01 21:20:33
【问题描述】:

所以我试图重载

我遇到了几个错误: Polynomial::PrivateStruct* Polynomial::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);

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 啊,我不敢相信我没有发现这一点。新鲜的眼睛。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-05-29
    • 2021-06-14
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多