Salut tout le monde,
Voilà mon problème :
J'ai une classe A qui a pour attribut un pointeur vers une instance d'une autre classe B. Dans le destructeur de la classe A, j'appelle une méthode de B, via le pointeur donc.
Ensuite A (une instance de celle ci en fait) dont je parle ici est elle-même un attribut d'une troisième classe C.
Une méthode de C contient un objet local de B, qui est passée en paramètre à A, afin d'affecter le pointeur attribut sur B.
Et lorsqu'une exception est lancée dans cette méthode de C, l'objet local B est détruit (appel des destructeurs de tous les objets locaux), puis le destructeur de A est appelé (appel des destructeurs de tous les attributs).
Mais comme ce destructeur de A appelle une méthode de B via un pointeur, et que l'instance de B vient d'être détruite, "Access Violation" évidemment.
La question se résumerait donc en gros à "peut-on savoir si un objet pointé par un pointeur a été détruit ou non".
Je sais pas si je m'exprime clairement, c'est pas évident à expliquer.
D'avance merci,
Partager