membre static et heritage
Bonjour,
Pour commencer, la FAQ:
Comment initialiser un membre static ?
http://cpp.developpez.com/faq/cpp/?p...SS_init_static
Code:
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; |
On voit ci-dessus comment utiliser un membre static. Personnellement je veux faire pareil, un compteur qui s'incremente dans le constructeur.
Seulement, moi ma classe est herite, et je souhaiterai avoir une variable par classe.
Exemple:
Code:
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;
}
} |
Dans le main
Code:
1 2 3
| maC1 a;
maC1 b;
maC2 c; |
En sortie:
Citation:
maC1 compteur vaut1
maC1 compteur vaut2
maC2 compteur vaut3
On voit que les classes maC1 et maC2 partage le meme compteur(herite de exemple).
Moi je voudrai:
Citation:
maC1 compteur vaut1
maC1 compteur vaut2
maC2 compteur vaut1
A part en redefinnissant ma variable a chaque fois je vois pas comment faire!
Une idée?
Merci