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.          

 

Drupal 7 Appliance - Powered by TurnKey Linux