[Debutant] question qui doit etre simple
Hello hello,
Je m'initie au C++ avec le livre Programmez en langage C++ de Claude Delannoy (edition eyrolles) et je l'aime bien (pour le moment) mais arrive un exemple ou je comprend pas tout à fait qqchose (bon j'en suis pas très loin) :
Code:
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 36 37 38 39 40 41 42 43
|
#include <iostream>
using namespace std;
class cpte_obj
{
static int ctr;
public :
cpte_obj();
~cpte_obj();
};
int cpte_obj::ctr = 0;
cpte_obj::cpte_obj()
{
cout << "++ construction : il y a maintenant " << ++ctr << " objets\n";
}
cpte_obj::~cpte_obj()
{
cout << "-- destruction : il y a maintenant " << --ctr << " objets\n";
}
main()
{
void fct(); // *1
cpte_obj a;
fct(); // *2
cpte_obj b;
}
void fct()
{
cpte_obj u,v;
}
}
et cela retourne :
++ construction : il y a maintenant 1 objets
++ construction : il y a maintenant 2 objets
++ construction : il y a maintenant 3 objets
-- destruction : il y a maintenant 2 objets
-- destruction : il y a maintenant 1 objets
++ construction : il y a maintenant 2 objets
-- destruction : il y a maintenant 1 objets
-- destruction : il y a maintenant 0 objets |
Donc ma question concernant les lignes rouges *1 et *2, pourquoi *1 créé 2 objets et *2 en détruit 2 ???
Merci d'avance pour votre aide !!!