Bonjour à tous,
je suis en train de m'entrainer en C++ et j'ai un soucis avec un exercices (je n'ai pas les corrigés).
Voilà mon code qui est une fonction membre de la classe "Abonne". Le programme est la gestion d'une bibliothèque. Les livres disposent de leur propre classe "Livre".
Je pense que la fonction est claire, elle s'exécute lorsqu'un abonné doit rendre un livre et donc le retirer la liste de livres empruntés. livres_empruntes est donc une liste de "Livre". Le problème se situe au : if (*it == l) Le compilateur n'arrive pas à comparer ces deux éléments.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void Abonne::rendre_livre(Livre l) { list<Livre>::iterator it; for (it = livres_empruntes.begin(); it != livres_empruntes.end(); it++) if (*it == l) { livres_empruntes.erase(it); break; } }
Voilà l'erreur:
no match for 'operator==' in '(&it)->std::_List_iterator<_Tp>::operator* [with _Tp = Livre]() == l'
Quelqu'un aurait une idée?
Merci
Partager