2016-05-26 14 views
0

C++リストからオブジェクトを削除するにはどうすればいいですか - 私はブック管理ソフトウェアを作成しようとしています。渡されたオブジェクトであるブックを削除するリストです。私はこの解決策について考えていたが、うまくいかない - ==演算子が適切にオーバーロードされていないようだ。あるいは、この解決法はうまくいかないでしょうか?std :: listからオブジェクトを削除する

class Database 
{ 
    list <Books> mybooks; 
public: 
    void BookDel(Books & temp) 
    { 
     mybooks.remove(temp); 
    } 
} 
+4

2つの「書籍」を比較して、それらが等しいかどうかを確認する機能はありますか? – NathanOliver

+1

私たちに 'Books'コードを見せてください。同じものに対して 'operator =='をオーバーロードしましたか? – CinCout

+1

'operator ==' https://stackoverflow.com/questions/4421706/operator-overloadingをオーバーロードする方法 – CoryKramer

答えて

1

それとも、このソリューションは、仕事に行くのではないですか?

このソリューションは、Bookのオブジェクトがoperator==に匹敵する限り動作します。

しかし、動作しません - ==演算子が正しくオーバーロードされていないようですか?

オペレータが適切にオーバーロードされていない場合は、それが問題になる可能性があります。もっと深く勉強してくださいどのようにそれは動作しません。それはあなたにについての洞察を与えるでしょうそれは解決につながる、なぜ機能しません。

0

私の==過負荷は間違っていたので、私はそれを修正して、今働いているようです。これは私のブックスのクラスコードです

class Book { 
    public: bool operator==(const Book & a) const 
{ 
    bool test=false; 
    if(!(this->tytul.compare(a.tytul))) 
     test=true; 
    return test; 
} 
protected: 
list <Autor> authors; 
string tytul; 
public: 
    void AddAuthor(Autor x) 
{ 
    authors.push_back(x); 
} 
Books(string tytulx) 
{ 
    tytul = tytulx; 
} 
}; 
関連する問題