は、私は、クラスと呼ばれる本を持っていると言います"i"はbook1 == book2に遭遇した時です。オブジェクトのメンバーのための比較演算子のオーバーロード
bool is_same() {
return (book1==book2) ? true : false;
}
どうすればよいですか?これは私が持っている現在の演算子のオーバーロード関数です。これは、「 'bool'型のrvalueから型 'Book &'の非const参照の無効な初期化」を行います。私は現在、クラスブックの中で私のオーバーロードされた関数を公開関数として持っています。
Book& operator==(const Book& b) const {
return ISBN() == b.ISBN();
}
私はオペレータオーバーロードには比較的新しいので、私は多くの回答を味わっていますが、どれも問題を解決しません。私はbook1 == book2をどうすればいいのか理解していますが、すべてのメンバーが同じ値であればtrueを返します。この場合、私はただ1つ以上のものを持っていますが、 "i"が両方のオブジェクトで同じであればtrueを返します。
知りたいことすべて:https://stackoverflow.com/questions/4421706/what-are-the-basic-rules-and-idioms-for-operator-overloading – NathanOliver
Btwこの返品(book1 == book2)? true:false; '単純に' return book1 == book2; ' – DimChtz