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
merci pour vos réponse.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager