bonjour,
Appelle du destructeur dans une méthode du même Objet.
est ce que c'est possible ?(ne cause pas de problème lors de l'exécution )
bonjour,
Appelle du destructeur dans une méthode du même Objet.
est ce que c'est possible ?(ne cause pas de problème lors de l'exécution )
Bonjour,
en gros dans une des méthodes de ta classe, tu veux supprimer l'objet appelant.
Eh bien oui c'est tout à fait possible, il suffit de taper :
dans ta méthode. "this" est un pointeur sur l'objet qui appelle la méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part delete this;
Voilà tout.![]()
Appeler le destructeur "a la main" est possible partout, mais est totalement déconseillé sauf dans un unique cas très particulier dont tu n'as certainement pas besoin pour l'instant.
Normalement on utilise delete pour qu'il appelle le destructeur puis désalloue la mémoire associée.
Utiliser delete dans une fonction membre est possible mais attention à savoir ce que vous faites : c'est très rarement utile.
Salut,
Effectivement, tu peux tout à fait appeler delete this depuis une fonction membre d'une classe, mais:
- Cela implique que tu aies la certitude que l'objet que tu tente de détruire a bel et bien été créé en ayant recours à l'allocation dynamique de la mémoire
- Cela doit être la dernière action de la fonction membre
- Le pointeur sur l'objet est invalidé, du fait de la destruction de l'objet (autrement dit, tu ne dois plus utiliser le pointeur concerné après appel de la fonction, du moins, pas avant d'avoir pris la précaution de le faire pointer sur... un objet valide, créé en ayant recours à l'allocation dynamique)
- Il est très rare de se trouver dans une situation dans laquelle ce serait, effectivement, à l'objet d'être responsable de sa propre destruction... Généralement, la décision de détruire un objet échoit à ... un autre objet, et souvent à un objet de type différent
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
merci pour vos réponse.
Partager