3

演算子をオーバーロードしようとしています<<

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)
4

2 に答える 2

4

次のものが必要です。

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

あなたのコードでは、const ostreamオブジェクトを変更しようとしているため、エラーが発生します。
であってはなりませんconst

于 2012-05-03T15:45:59.940 に答える
1
ostream & operator<<(ostream& out, const animal& rhs){
out << rhs.a;
return out;
}

問題の考えられる理由はすでに説明しましたが、実際に試してみませんでしたか?

于 2012-05-03T15:45:35.790 に答える