我試着重載操作< <操作符重載<<錯誤
const ostream & operator<<(const ostream& out, const animal& rhs){
out << rhs.a;
return out;
}
似乎即時得到一個錯誤,因爲IM返回一個常量,也因爲第一個參數是常量refrence對ostream對象。
cout << objectOfAnimal1 << objectOfAnimal2 ;
它工作得很好,如果我改變了返回類型和運營商簽名這一個:
ostream & operator<<(ostream& out, const animal& rhs)
您正在嘗試將數據寫入ostream,這不是一個非常「常量」的操作! – FatalError
@FatalError你能告訴我在哪裏修改對象 – AlexDan
const意味着對象不會被修改;當你寫cout << objectofanimal1時,你正在寫入你標記爲const的ostream。編譯器足夠聰明,知道它不能是const –