next up previous contents
Next: Fonctions membres statiques Up: static dans les classes Previous: static dans les classes

Données membres statiques :

On peut définir des données membres static, ces données sont partagées par tous les objets de la classe (dans la terminologie smalltalk ce sont des variables d'instances).

class X{
private:
  static int cmp;
  //...
public:
  X(){cmp++;};
  static int ncreat(){
    return cmp;
  }
  ~X(){cmp--;}
  /...
};
int X::cmp=0;    // seule initialisation possible
A chaque création d'un objet de la classe X, le constructeur X::X() est appelé et cmp sera incrémenté, et à chaque destruction, le destructeur ~X() est appelé et cmp sera décrémenté. Ainsi la fonction membre statique X::ncreat() retournera le nombre d'objets de la classe X en usage.

Une donnée membre statique ne pourra (et devragif) être initialisée qu'à l'extérieur de la déclaration de la classe.




Mon Oct 20 14:02:48 MET 1997