COURS et TP DE LANGAGE C++
Chapitre 11
Propriétés des fonctions membres
Joëlle MAILLEFERT
joelle.maillefert@iut-cachan.u-psud.fr
IUT de CACHAN
Département GEII 2
CHAPITRE 11
PROPRIETES DES FONCTIONS MEMBRES
I- SURDEFINITION DES FONCTIONS MEMBRES
En utilisant la propriété de surcharge des fonctions du C++, on peut définir plusieurs
constructeurs, ou bien plusieurs fonctions membres, différentes, mais portant le même nom.
Exemple (à tester) et exercice XI-1: Définition de plusieurs constructeurs:
Indiquer quel constructeur est utilisé pour chacun des objets a, b, c.
#include <iostream.h> // Surcharge de fonctions
#include <conio.h>
ÏÕÖ×class point
Ïϧ{
Ïϧprivate:
ÏϧÏíÏint x,y;
Ïϧpublic:
ÏϧÏíÏpoint(); // constructeur 1
ÏϧÏíÏpoint(int abs); // constructeur 2
ÏϧÏíÏpoint(int abs,int ord); // constructeur 3
ÏϧÏíÏvoid affiche();
ÏÏ©};
ÏÞßàpoint::point() // constructeur 1
Ïϧ{
ÏϨ¹¹Ïx=0; y=0;
ÏÏ©}
ÏÞßàpoint::point(int abs) // constructeur 2
Ïϧ{
ÏϨ¹¹Ïx = abs; y = abs;
ÏÏ©}
ÏÞßàpoint::point(int abs,int ord) // constructeur 3
Ïϧ{
ÏϨ¹¹Ïx = abs; y = ord;
ÏÏ©}
ÏÞßàvoid point::affiche()
Ïϧ{
ÏϨ¹¹Ïgotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";
ÏÏ©}
COURS et TP DE LANGAGE C++
-
Chapitre n° 11
127 -
ÏÞßàvoid main()
Ïϧ{
ÏϨ¹¹Ïpoint a, b(5), c(3,12);
ÏϨ¹¹Ïclrscr();Ïa.affiche();Ïb.affiche();Ïc.affiche();Ïgetch();
ÏÏ©}
Exercice XI-2: Surcharge d’une fonction membre
Écrire une deuxième fonction affiche de prototype void point::affiche(char *message)
Cette fonction donne la possibilité à l’utilisateur d’ajouter, à la position du point, un message
sur l’écran.
II- FONCTIONS MEMBRES “ EN LIGNE ”
Le langage C++ autorise la description des fonctions membres dès leur déclaration dans la
classe. On dit que l’on écrit une fonction “ inline ”.
Il s’agit alors d’une “ macrofonction ”: A chaque appel, le compilateur génère le code de la
fonction et ne fait pas appel à un sous-programme.
Les durées d’exécution sont donc plus rapide