Implantation

L’implantation de la fonction membre sera donnée plus loin dans le programme, à tout endroit jugé adéquat :

void fiche::ecrit_np(char *nouv_nom, char  *nouv_pre) {     this->nom = nouv_nom;     this->prenom = nouv_pre;}

Noter que le nom de la méthode est précédé du nom de la structure suivi par l’opérateur de résolution de portée :: (sur lequel nous reviendrons). On indique ainsi au compilateur qu’il s’agit de la fonction membre définie dans la structure fiche. En effet, d’autres structures pourraient avoir une fonction membre du même nom, et il peut y avoir aussi une fonction normale ayant ce nom ; en outre le compilateur sait ainsi immédiatement qu’il doit passer un paramètre implicite fiche *this dans la fonction. C’est pourquoi le nom de la structure est obligatoire : il ne doit jamais être omis, même s’il n’y a qu’une fonction portant ce nom dans tout le programme.

Nous voyons ici l’usage du paramètre caché this. Cependant, cette écriture est assez lourde. Il est permis de l’abréger ainsi :

void fiche::ecrit_np(char *nouv_nom, char  *nouv_pre){     nom = nouv_nom;     prenom = nouv_pre;}

En effet, toutes les fonctions membres « connaissent » automatiquement le nom de tous les membres (fonctions et données) de la structure. De ce fait, on utilise assez peu le paramètre this explicitement, sauf lorsqu’on souhaite connaître l’adresse de la structure (c’est pourquoi this est un pointeur, et non une référence).

Précédent Précédent Sommaire Sommaire Suivant Suivant