Exercice 29
Énoncé
Écrire une fonction, sans argument ni valeur de retour, qui se contente d’afficher, à
chaque appel, le nombre total de fois où elle a été appelée sous la forme :
appel numéro 3
La meilleure solution consiste à prévoir, au sein de la fonction en question, une
variable de classe statique. Elle sera initialisée une seule fois à zéro (ou à toute autre
valeur éventuellement explicitée) au début de l’exécution du programme. Ici, nous
avons, de plus, prévu un petit programme d’essai.
#include
using namespace std ;
void fcompte (void)
{
static int i ; // il est inutile, mais pas interdit, d'écrire i=0
i++ ;
cout << "appel numéro " << i << "\n" ;
}
/* petit programme d'essai de fcompte */
main()
{ void fcompte (void) ;
int i ;
for (i=0 ; i<3 ; i++) fcompte () ;
}
Là encore, la démarche consistant à utiliser comme compteur d’appels une variable
globale (qui devrait alors être connue du programme utilisateur) est à proscrire.
64
Énoncé
Écrire une fonction, sans argument ni valeur de retour, qui se contente d’afficher, à
chaque appel, le nombre total de fois où elle a été appelée sous la forme :
appel numéro 3
La meilleure solution consiste à prévoir, au sein de la fonction en question, une
variable de classe statique. Elle sera initialisée une seule fois à zéro (ou à toute autre
valeur éventuellement explicitée) au début de l’exécution du programme. Ici, nous
avons, de plus, prévu un petit programme d’essai.
#include
using namespace std ;
void fcompte (void)
{
static int i ; // il est inutile, mais pas interdit, d'écrire i=0
i++ ;
cout << "appel numéro " << i << "\n" ;
}
/* petit programme d'essai de fcompte */
main()
{ void fcompte (void) ;
int i ;
for (i=0 ; i<3 ; i++) fcompte () ;
}
Là encore, la démarche consistant à utiliser comme compteur d’appels une variable
globale (qui devrait alors être connue du programme utilisateur) est à proscrire.
64
