Bonjour,
Pour commencer, la FAQ:
Comment initialiser un membre static ?
http://cpp.developpez.com/faq/cpp/?p...SS_init_static
On voit ci-dessus comment utiliser un membre static. Personnellement je veux faire pareil, un compteur qui s'incremente dans le constructeur.
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 // dans le fichier Exemple.h #ifndef EXEMPLE_H #define EXEMPLE_H class Exemple { public: static int compteur; }; #endif // dans le fichier Exemple.cpp #include "Exemple.h" int Exemple::compteur = 0;
Seulement, moi ma classe est herite, et je souhaiterai avoir une variable par classe.
Exemple:
Dans le main
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 class Exemple { Exemple() { compteur++; } public: static int compteur; }; class maC1 : public Exemple { maC1() { cout << "maC1 compteur vaut" << compteur; } } class maC2 : public Exemple { maC2() { cout << "maC2 compteur vaut" << compteur; } }
En sortie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 maC1 a; maC1 b; maC2 c;
On voit que les classes maC1 et maC2 partage le meme compteur(herite de exemple).maC1 compteur vaut1
maC1 compteur vaut2
maC2 compteur vaut3
Moi je voudrai:
A part en redefinnissant ma variable a chaque fois je vois pas comment faire!maC1 compteur vaut1
maC1 compteur vaut2
maC2 compteur vaut1
Une idée?
Merci
Partager