IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Appelle du destructeur dans une méthode du même Objet


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Points : 25
    Points
    25
    Par défaut Appelle du destructeur dans une méthode du même Objet
    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 )

  2. #2
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Juin 2009
    Messages : 33
    Points : 43
    Points
    43
    Par défaut
    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.

    Voilà tout.

  3. #3
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    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.

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    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

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Points : 25
    Points
    25
    Par défaut
    merci pour vos réponse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/10/2013, 12h08
  2. [PHP 5.3] [POO] Appel d'une méthode dans une méthode
    Par yann18 dans le forum Langage
    Réponses: 6
    Dernier message: 20/10/2011, 09h56
  3. [Thread] appel de méthodes non-synchronized dans une méthode synchronized
    Par dr23fr dans le forum Concurrence et multi-thread
    Réponses: 1
    Dernier message: 24/06/2008, 22h47
  4. appeler le destructeur dans une fonction
    Par asoka13 dans le forum C++
    Réponses: 3
    Dernier message: 12/05/2008, 00h24
  5. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo