Bonjour.

Voici le petit souci que je rencontre actuellement :

J'ai une classe classA qui a pour attribut une QList contenant des pointeurs vers des objets de classe classB (donc QList<classB *>).
Avec les accesseurs qui vont tout bien.

J'ai une classe classEngine qui contient une QList contenant des pointeurs vers des objets de classe classA.

Dans cette classe classEngine j'ai une fonction qui à le prototype suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
QList<classB*> classEngine::getAllObjectsB() const
qui a pour but de me construire la liste des tous les elements de classB de mon application en parcourant la liste des elements de classA en recuperant leur liste de classB.

Voici son implémentation :

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
17
18
19
20
21
22
23
24
25
26
QList<classB*> classEngine::getAllObjectsB() const
{
 
	classA * objectACourant;
	classB * objectBCourant;
	QList<classB *> retour;
 
	QListIterator<classA *> iterObjectClassA(this->getObjectClassAList());
 
	while (iterObjectClassA.hasNext()) {
 
		// Recup objet courant de la liste
		objectACourant = iterObjectClassA.next();
 
		// Iterateur sur la liste d'objet de type classB pour chaque objet de classA
		QListIterator<classB*> iterObjectClassB(objectACourant->getObjectClassBList());
 
		while (iterObjectClassB.hasNext()) {
 
			objectBCourant = iterObjectClassB.next();
			retour.push_back(objectBCourant);
		}
	}
 
	return retour;
}
Je veux donc simplement récupèrer une liste contenant des pointeurs vers mes objets B.

Le souci c'est que quand j'appelle cette fonction,
j'obtiens une erreur mémoire et l'appli crash.

J'ai ciblé l'erreur sur cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
retour.push_back(objectBCourant);
mais pour moi le push_back devrait agir comme si c'était une variable normale (un entier ou autre) mais apparemment il semble faire un peu plus que çà.

Avez vous une idée d'où cela peut provenir ? Je pense que je passe à côté de quelque chose, et cela doit être tellement énorme que je ne le vois pas. J'ai donc besoin d'un oeil frais qui ne rumine pas çà depuis des heures

Merci d'avance.