2013-11-01 61 views
0

所以我試圖超載運算符< <。從我可以看到的所有來源中,語法是正確的,但eclipse不喜歡它。在C++運算符中訪問具有朋友功能的私人成員的問題<< overload

我得到了幾個錯誤: 多項式:: PrivateStruct *多項式::頭是私人

和: 結構多項式:: 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); 

回答

6

的聲明和定義不匹配 - 一個需要參考const,其他非const。匹配他們,你很好去。

+0

啊我不敢相信我沒有發現。新鮮的眼睛。謝謝! –