bool Bibliotheque::retourner(const string & matricule, const string & cote) { bool retour = false; Abonne* abonne = trouverAbonne(matricule); Livre* livre = trouverLivre(cote); if (abonne->retirerEmprunt(*livre)) { livre->modifierNbDisponibles(livre->obtenirNbDisponibles() + 1); for (unsigned int i = 0; i < vecEmprunt_.size(); i++) { if (*(vecEmprunt_[i]->obtenirLivre()) == *livre) { vecEmprunt_.erase(vecEmprunt_.begin() + i); retour = true; i = vecEmprunt_.size(); } } } return retour; }
bool Bibliotheque::retourner(const string& matricule, const string& cote) { bool estEmprunte = false; unsigned int position = 0; for (unsigned int i = 0; i < emprunts_.size() && !estEmprunte; i++) if (emprunts_[i]->obtenirMatricule() == matricule && emprunts_[i]->obtenirObjetEmpruntable()->obtenirCote() == cote) { estEmprunte = true; position = i; } if (estEmprunte) { Abonne* abonne = trouverAbonne(matricule); ObjetEmpruntable* objetEmpruntable = trouverObjetEmpruntable(cote); abonne->retirerEmprunt(*objetEmpruntable); delete emprunts_[position]; emprunts_[position] = emprunts_[emprunts_.size() - 1]; emprunts_.pop_back(); objetEmpruntable->modifierNbDisponibles(objetEmpruntable->obtenirNbDisponibles() + 1); return true; } return false; }