Rappels
Surdéfinition des fonctions membre et arguments par
défaut
Il s’agit simplement de la généralisation aux fonctions membre des possibilités déjà
offertes par C++ pour les fonctions « ordinaires ».
Fonctions membre en ligne
Il s’agit également de la généralisation aux fonctions membre d’une possibilité offerte
pour les fonctions ordinaires, avec une petite nuance concernant sa mise en œuvre ;
pour rendre « en ligne » une fonction membre, on peut :
soit fournir directement la définition de la fonction dans la déclaration même de la
classe ; dans ce cas, le qualificatif inline n’a pas à être utilisé, comme dans cet
exemple :
class truc
{ ...
int fctenlig (int, float)
{ définition de fctenlig
}
.....
} ;
soit procéder comme pour une fonction ordinaire, en fournissant une définition en
dehors de la déclaration de la classe ; dans ce cas, le qualificatif inline doit
apparaître, à la fois devant la déclaration et devant l’en-tête.
Cas des objets transmis en arguments d’une fonction
membre
Une fonction membre reçoit implicitement l’adresse de l’objet l’ayant appelé. Mais, en
outre, il est toujours possible de lui transmettre explicitement un argument (ou
plusieurs) du type de sa classe, ou même du type d’une autre classe. Dans le premier
cas, la fonction membre aura accès aux membres privés de l’argument en question (car,
en C++, l’unité d’encapsulation est la classe elle-même et non l’objet). En revanche,
dans le second cas, la fonction membre n’aura accès qu’aux membres publics de
151
Surdéfinition des fonctions membre et arguments par
défaut
Il s’agit simplement de la généralisation aux fonctions membre des possibilités déjà
offertes par C++ pour les fonctions « ordinaires ».
Fonctions membre en ligne
Il s’agit également de la généralisation aux fonctions membre d’une possibilité offerte
pour les fonctions ordinaires, avec une petite nuance concernant sa mise en œuvre ;
pour rendre « en ligne » une fonction membre, on peut :
soit fournir directement la définition de la fonction dans la déclaration même de la
classe ; dans ce cas, le qualificatif inline n’a pas à être utilisé, comme dans cet
exemple :
class truc
{ ...
int fctenlig (int, float)
{ définition de fctenlig
}
.....
} ;
soit procéder comme pour une fonction ordinaire, en fournissant une définition en
dehors de la déclaration de la classe ; dans ce cas, le qualificatif inline doit
apparaître, à la fois devant la déclaration et devant l’en-tête.
Cas des objets transmis en arguments d’une fonction
membre
Une fonction membre reçoit implicitement l’adresse de l’objet l’ayant appelé. Mais, en
outre, il est toujours possible de lui transmettre explicitement un argument (ou
plusieurs) du type de sa classe, ou même du type d’une autre classe. Dans le premier
cas, la fonction membre aura accès aux membres privés de l’argument en question (car,
en C++, l’unité d’encapsulation est la classe elle-même et non l’objet). En revanche,
dans le second cas, la fonction membre n’aura accès qu’aux membres publics de
151
