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:
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());
 
}
Est ce que mon code est correct? Pas de fuite mémoire?
Dois-je faire le delete ou alors erase() s'en charge ?

Merci de m'éclairer sur mon code !