Exemple de Programme

Voici un exemple de classe utilisant une donnée membre statique, nommée cmpt_obj, cette donnée nous permet de savoir à tout moment le nombre d'objets de la classe qui a été crée, pour cela lors de l'appel du constructeur la donnée membre satique nb_obj est incrémentée de 1 et lors de l'appel du destructeur elle est décrémenter de 1.


#include <iostream.h>
class cmpt_obj
	{
	 static int nb_obj;
	 
 public:
	 cmpt_obj(); //constructeur
	 ~cmpt_obj(); //destructeur

	};

int cmpt_obj::nb_obj=0;  //initialisation de la donnée membre statique

cmpt_obj::cmpt_obj()
   {
    cout<<"++construction, il y a maintenant:   "
		<<++nb_obj<<" objets\n";
   }
 
cmpt_obj::~cmpt_obj()
   {
    cout<<"--destruction,  il reste maintenant: "
		<<--nb_obj<<"objets\n";
   }

void fct(); //déclaration d'une fonction

void main() //programme principale
 {
  cmpt_obj a;
  fct();         //appel de fonction
  cmpt_obj b;
 }

void fct()
 {
  cmpt_obj u,v;
 }


++construction, il y a maintenant:   1 objets
  //construction de l'objet a 
++construction, il y a maintenant:   2 objets
  //construction de l'objet u dans la fontion fct()
++construction, il y a maintenant:   3 objets
  //construction de l'objet v dans la fontion fct()

--destruction,  il reste maintenant: 2 objets
  //destruction de l'objet v et u 
--destruction,  il reste maintenant: 1 objets
  //  lors de la sortie de la fonction

++construction, il y a maintenant:   2 objets
  //construction de l'objet b lors du retour au main 

--destruction,  il reste maintenant  1 objets
  //destruction de l'objet b lors de la fin du main
--destruction,  il reste maintenant  0 objets
  //destruction de l'objet a lors de la fin du main