Bonjour,

J'ai une classe CMaClasse, definit dans un .h et .cpp(classique), sauf que dans mon cpp j'ai en haut:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
static typeList* uneListe = NULL;
Tout fonctionne correctement, la liste est bien initialise une seule fois dans le contructeur et bien utilise.
Maintenant j'ai un doute au niveau de la memoire.

J'utilise ma classe ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
// Par exemple dans un main:
CMaClasse* p1 = new CMaClasse();
CMaClasse* p2 = new CMaClasse(); // <-- uneListe != NULL
delete p1;
CMaClasse* p3 = new CMaClasse(); // <-- uneListe != NULL
delete p2;
delete p3;
La je pense que uneListe est creer une seule fois.

Mais la:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
// Par exemple dans un main:
CMaClasse* p1 = new CMaClasse();
CMaClasse* p2 = new CMaClasse(); // <-- uneListe != NULL
delete p1;

delete p2;

CMaClasse* p3 = new CMaClasse(); // <-- ici
delete p3;
Lorsque je cree p3, est-ce que uneListe est cense etre plein ou vide. Dans mon cas j'ai bien uneListe != NULL, mais pourtant j'ai supprimer toutes les instances de la classe(p1 et p2).
Est-ce que c'est normal?

PS: il est possible que la conception soit mauvaise, mais ce code n'est pas a moi, je dois le reprendre et j'aimerai deja comprendre ce qu'il fait, avant de modifier.