Exercice 73
Énoncé
Comment pourrait-on adapter la classe point créée dans l’exercice 66, pour qu’elle
dispose d’une fonction membre nombre fournissant le nombre de points existant à un
instant donné ?
On pourrait certes introduire une fonction membre classique. Toutefois, cette solution
présenterait l’inconvénient d’obliger l’utilisateur à appliquer une telle fonction à un
objet de type point. Que penser alors d’un appel tel que p.compte() (p étant un point) pour
connaître le nombre de points ? Qui plus est, comment faire appel à compte s’il n’existe
aucun point ?
La solution la plus agréable consiste à faire de compte une fonction statique. On la
déclarera donc ainsi :
static int compte () ;
Voici sa définition :
int point::compte ()
{ return nb_pts ;
}
Voici un exemple d’appel de compte au sein d’un programme dans lequel la classe point a
été déclarée :
cout << "il y a " << point::compte () << "points\n" ;
162
Énoncé
Comment pourrait-on adapter la classe point créée dans l’exercice 66, pour qu’elle
dispose d’une fonction membre nombre fournissant le nombre de points existant à un
instant donné ?
On pourrait certes introduire une fonction membre classique. Toutefois, cette solution
présenterait l’inconvénient d’obliger l’utilisateur à appliquer une telle fonction à un
objet de type point. Que penser alors d’un appel tel que p.compte() (p étant un point) pour
connaître le nombre de points ? Qui plus est, comment faire appel à compte s’il n’existe
aucun point ?
La solution la plus agréable consiste à faire de compte une fonction statique. On la
déclarera donc ainsi :
static int compte () ;
Voici sa définition :
int point::compte ()
{ return nb_pts ;
}
Voici un exemple d’appel de compte au sein d’un programme dans lequel la classe point a
été déclarée :
cout << "il y a " << point::compte () << "points\n" ;
162
