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 :

Destructeur d'une classe.


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut [*]Destructeur d'une classe.
    Bonjour, je suis débutant en c++, j'ai lu la FAQ sur le destructeur mais il reste des points ou c'est pas clair pour moi, help !

    j'ai un prog quelconque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class Test {
         protected:
              int * pInt;
         public:
              Test(): pInt(new int(3)) {}
              ~Test() {}
    };
     
    int main()
    {
         Test * unTest = new Test();
         delete unTest;
         return 0;
    }
    j'ai 2 questoin:
    _ Quand j'appelle a "delete unTest" dans "main()", objet unTest sera détruit, mais est-ce que "pInt" de l'objet sera detruit automatiquement ? (je pense que oui mais je suis pas sur ).
    _ A quoi sert de faire un destructeur ou il n'y a pas d'instruction dedans si le compilateur peut fournir 1 par défaut ?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    _ Quand j'appelle a "delete unTest" dans "main()", objet unTest sera détruit, mais est-ce que "pInt" de l'objet sera detruit automatiquement ? (je pense que oui mais je suis pas sur ).
    Non. La règle est très simple : un new, un delete. Tu as alloué pInt avec new, donc il faut le détruire avec delete.

    _ A quoi sert de faire un destructeur ou il n'y a pas d'instruction dedans si le compilateur peut fournir 1 par défaut ?
    A rien. A part si tu dois déclarer un destructeur virtuel, là tu es bien obligé de lui donner un corps même s'il est vide.

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Citation Envoyé par Laurent Gomila
    A rien. A part si tu dois déclarer un destructeur virtuel, là tu es bien obligé de lui donner un corps même s'il est vide.
    (Il y a quelques cas particuliers comme quand la classe dispose d'attributs auto_ptr)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    merci Laurent Gomila, j'ai compris

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

Discussions similaires

  1. Appel du destructeur d'une classe mère
    Par Beulard dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2010, 20h06
  2. destructeur d'une classe dérivée du type list
    Par Haze. dans le forum Général Python
    Réponses: 2
    Dernier message: 19/11/2007, 01h11
  3. [POO] destructeur d'une classe
    Par mulot49 dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2007, 17h54
  4. Réponses: 2
    Dernier message: 30/01/2007, 16h55
  5. Conseil du compilo sur un destructeur d'une classe
    Par okparanoid dans le forum Langage
    Réponses: 2
    Dernier message: 20/07/2005, 20h11

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