簡體   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