validite d'une static global dans une classe
Bonjour,
J'ai une classe CMaClasse, definit dans un .h et .cpp(classique), sauf que dans mon cpp j'ai en haut:
Code:
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:
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:
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.