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 :

Incompréhension du destructeur


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Juin 2006
    Messages
    218
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 218
    Points : 72
    Points
    72
    Par défaut Incompréhension du destructeur
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include<iostream>
    using namespace std;
    #include<conio.h>
    class cpte_obj{
          static int ctr;
          public:
                 cpte_obj();
                 ~cpte_obj();
                 static void compte();
                 };
                 int cpte_obj::ctr;
                 cpte_obj::cpte_obj(){
                                      cout<<"++construction : il y a maintenant "<<++ctr<<" objets"<<endl;
                                      }
                 cpte_obj::~cpte_obj(){
                                       cout<<"--destruction : il reste maintenant "<<--ctr<<" objets"<<endl;
                                       }
                 void cpte_obj::compte(){
                      cout<<"appel compte : il y a "<<ctr<<" objets"<<endl;
                      }
                      main(){
                             void fct();
                             cpte_obj::compte();
                             cpte_obj a;
                             cpte_obj::compte();
                             fct();
                             cpte_obj::compte();
                             cpte_obj b;           
                             cpte_obj::compte();
                             getche();
                             }
                             void fct(){
                                  cpte_obj u,v;
                                  }
                                  
    Ce programme donne l'affichage suivant :

    appel compte : il y a 0 objets
    ++construction : il y a maintenant 1 objets
    appel compte : il y a 1 objets
    ++construction : il y a maintenant 2 objets
    ++construction : il y a maintenant 3 objets
    --destruction : il reste maintenant 2 objets
    --destruction : il reste maintenant 1 objets

    appel compte : il y a 1 objets
    ++construction : il y a maintenant 2 objets
    appel compte : il y a 2 objets


    Mon problème est que je n'ai pas compris comment lorsque j'appelle la fonction : void fct() , celle-ci passe à l'utilisation de la fonction cpte_obj::~cpte_obj() et par suite à l'affichage de ces 2 lignes :
    --destruction : il reste maintenant 2 objets
    --destruction : il reste maintenant 1 objets

  2. #2
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    u et v on une vie limité, ils sont détruit à la fin du bloc dans lequel ils se trouvent, ici la fonction fct.

    Tout comme 'a' est détruit à la sortie de main.
    L'itération est humaine; la récursion, divine.

Discussions similaires

  1. Petite incompréhension concernant les destructeurs
    Par Francky44003 dans le forum Débuter
    Réponses: 7
    Dernier message: 11/02/2011, 16h57
  2. messages incompréhensibles
    Par devalender dans le forum Outils
    Réponses: 2
    Dernier message: 06/07/2004, 16h53
  3. incompréhension avec ado
    Par Orgied dans le forum Bases de données
    Réponses: 3
    Dernier message: 19/05/2004, 18h24
  4. [WSAD5] probleme incompréhensible
    Par capitaine_banane dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 07/04/2004, 11h56
  5. [JSP] Erreur incompréhensible
    Par xxaragornxx dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/09/2003, 16h37

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