簡體   English   中英

運算符重載<<錯誤

[英]operator overloading<< error

我試圖重載運算符<<

const ostream & operator<<(const ostream& out, const animal& rhs){
    out << rhs.a;
    return out;
}

似乎我得到一個錯誤,因為我返回一個const,也因為第一個參數是對一個ostream對象的const引用。

cout << objectOfAnimal1 << objectOfAnimal2 ;

如果我將返回類型和操作符簽名更改為以下內容,它可以正常工作:

ostream & operator<<(ostream& out, const animal& rhs)

你需要:

ostream & operator<<(ostream& out, const animal& rhs)

在您的代碼中您正在嘗試修改const ostream對象,因此您會收到錯誤。
它不應該是const

ostream & operator<<(ostream& out, const animal& rhs){
out << rhs.a;
return out;
}

你已經解釋了問題的可能原因,你真的沒有嘗試過嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM