Bonjour,
Dans le cadre du developpement d'un jeu, je dois gérer l'ajout ou suppréssion de bombes d'un plateau de jeu (classe Bombe).
Dans une classe Jeu, j'ai un vecteur de bombe sous la forme:
vector<Bombe*> bombe;
Quand j'ajoute une bombe, je fais:
Bombe *bombe = new Bombe( /*...arguments...*/ );
this->bombe.push_back(bombe);
Je dois supprimer les bombes du vecteur quand la méthode bool est_terminee() de la classe Bombe retourne true.
Pour cela, j'ai tappé ce code:
Est ce que mon code est correct? Pas de fuite mémoire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 void Jeu :: nettoyer_bombe() { vector<Bombe*>::iterator ite = this->bombe.begin(); do { if( (*ite)->est_terminee() ) { delete (*ite); this->bombe.erase(ite); } else ite++; } while(ite != this->bombe.end()); }
Dois-je faire le delete ou alors erase() s'en charge ?
Merci de m'éclairer sur mon code !
Partager