Bonjour,
j'ai un problème dans la manipulation des vecteurs et des itérateurs
Avec ces deux classes je fait un vecteur d'animal * pour faire fonctionner le polymorphisme.class animal
{
protected:
int x, age, nrj,age_max;
string espece;
char sexe;
bool statut;
public:
virtual void set_sexe()=0;
virtual void set_statut(bool)=0;
virtual void edite()=0;
}
class renard: public animal
{
public:
renard();
virtual char get_sexe();
virtual bool get_statut();
virtual string get_espece();
virtual void set_espece();
virtual void set_sexe();
virtual void set_statut(bool s);
}
Au niveau de la ligne en gras je ne sais pas quelle syntaxe utilisée, le compilateur me dit que [] n'a pas été surdéfini.class liste_animal : public vector <animal *>
{
public:
liste_animal():vector <animal *>(){}
void ajoute(animal * rl)
{
push_back(rl);//ajout a la fin
}
void edite_liste()
{
liste_animal::iterator i;
for(i=begin();i!=end();i++)
{
(*this)->edite();
}
}
void supprimer_morts() //permet de supprimer un animal mort dans la chaine
{
liste_animal::iterator i;
for(i=begin();i!=end();i++)
//boucle supprimant les animaux morts de la liste
{
if ((*this)[i]->get_statut()==false || (*this)[i]->get_nrj()==0)
{
erase(i);
i--; //fait pointer sur le suivant
}
}
}
J'utilise des itérateurs, dois-je utiliser des "size_t i" comme j'ai vu dans certains exemples.
Merci de me donner des pistes et de me donner si possible des liens ou des exemples sont exposés car je patauge dans le semoule!
Partager