Les
données statiques d'une classe
Comme dans une fonction normale, il peut être utile d'avoir des variables statiques dans une classe, qui se conserveront lors de la création d'objets différents.
Reprenons
notre classe Point
#include <iostream>
class Point {
float x,y;
public:
static int nombre; // attention, il n'est pas autorisé d'initialiser nombre ici
Point() { nombre++; x=0; y=0;} // un seul constructeur dans cet exemple
//
destructeur
~Point()
{
nombre--
;
}
float
getx() { return x; }
float
gety() { return y; }
} ;
int
Point::nombre=0; // initialisation :
a
mettre une fois dans le programme,
// en dehors de la déclaration de la classe
int main() {
Point p;
Point *pp= new Point; Point *pp2= new Point;
delete
pp;
std::cout << Point::nombre <<"\n";
return 0;
}
A noter qu'on peut accéder aux variables statiques par la syntaxe Point::nombre, sans avoir forcément à créer d'objet.