Exercice 76
Énoncé
Créer une classe point ne contenant qu’un constructeur sans arguments, un destructeur
et un membre donnée privé représentant un numéro de point (le premier créé portera
le numéro 1, le suivant le numéro 2...). Le constructeur affichera le numéro du point
créé et le destructeur affichera le numéro du point détruit. Écrire un petit programme
d’utilisation créant dynamiquement un tableau de 4 points et le détruisant.
Pour pouvoir numéroter nos points, il nous faut pouvoir compter le nombre de fois où
le constructeur a été appelé, ce qui nous permettra bien d’attribuer un numéro différent
à chaque point. Pour ce faire, nous définissons, au sein de la classe point, un membre
donnée statique nb_points. Ici, il sera incrémenté par le constructeur mais le destructeur
n’aura pas d’action sur lui. Comme tout membre statique, nb_points devra être initialisé.
Voici la déclaration (définition) de notre classe, accompagnée du programme
d’utilisation demandé :
#include
using namespace std ;
class point
{ int num;
static int nb_points ;
public :
point ()
{ num = ++nb_points ;
cout << "création point numéro : " << num << "\n" ;
}
~point ()
{ cout << "Destruction point numéro : " << num << "\n" ;
}
} ;
int point::nb_points=0 ; // initialisation obligatoire
main()
{ point * adcourb = new point [4] ;
delete [] adcourb ;
}
À titre indicatif, voici les résultats fournis par ce programme :
création point numéro : 1
création point numéro : 2
création point numéro : 3
création point numéro : 4
Destruction point numéro : 4
Destruction point numéro : 3
Destruction point numéro : 2
Destruction point numéro : 1
172
Précédent

- 173/398

Suivant