Donnée membre static.

Donnée membre static

static

Voir version :

Pas de dépendances

Télécharger :

#include <iostream>

class Test
{
protected:
    static int cpt;
public:
    Test() {cpt++;}
    int GetCpt() const {return cpt;}
};

int Test::cpt=0;

int main()
{
    Test a;
    Test b;
    std::cout << a.GetCpt() << " " << b.GetCpt() << std::endl;
    return 0;
}



Commentaires

	Une donnée membre static permet de gérer une variable commune à toutes les instances.

	Ici, cpt est commune à toutes les instances. Dans le main, je crée une instance a et b.
	Chaque constructeur incrémente la variable.

	Quand j'affiche la valeur, c'est bien entendu la même pour les deux instances, et c'est donc 2 ici.

	La précaution à prendre est l'initialisation de la variable static. 
	En effet, elle a besoin d'être initialisée. Pour cela, on le fait hors classe, juste après, avec la syntaxe ci dessus.