我想知道如何从C ++列表中删除对象 - 我试图创建一个图书管理软件,我想在数据库中有一个功能(这是一个list)从中移除一本书,这是一个传递的对象。我正在考虑这个解决方案,但它不会工作 - 似乎==运算符没有正确重载?或者这个解决方案可能不起作用?
class Database
{
list <Books> mybooks;
public:
void BookDel(Books & temp)
{
mybooks.remove(temp);
}
}
答案 0 :(得分:1)
或许这个解决方案不起作用?
只要Book
个对象与operator==
相当,此解决方案就可以使用。
但它不起作用 - 好像==运算符没有正确重载?
如果操作员没有正确过载,那肯定是问题所在。你应该更深入地研究 它不起作用。这将使您深入了解为什么它不起作用,这将引导您找到解决方案。
答案 1 :(得分:0)
我的==重载是错误的,所以我纠正了它,它似乎现在正在工作。这是我的Books类代码:
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;
}
};