attendu.
Ces possibilités de transmission par référence s’appliquent également à une valeur de
retour (dans ce cas, la notion de constance n’a plus de signification).
La notion de référence est théoriquement indépendante de celle de transmission
d’argument ; en pratique, elle est rarement utilisée en dehors de ce contexte.
Les arguments par défaut
Dans la déclaration d’une fonction (prototype), il est possible de prévoir pour un ou
plusieurs arguments (obligatoirement les derniers de la liste) des valeurs par défaut ;
elles sont indiquées par le signe =, à la suite du type de l’argument comme dans cet
exemple :
float fct (char, int = 10, float = 0.0) ;
Ces valeurs par défaut seront alors utilisées lorsqu’on appellera ladite fonction avec un
nombre d’arguments inférieur à celui prévu. Par exemple, avec la précédente
déclaration, l’appel fct ('a') sera équivalent à fct ('a', 10, 0.0) ; de même, l’appel fct
('x', 12) sera équivalent à fct ('x', 12, 0.0). En revanche, l’appel fct () sera illégal.
Surdéfinition de fonctions
En C++, il est possible, au sein d’un même programme, que plusieurs fonctions
possèdent le même nom. Dans ce cas, lorsque le compilateur rencontre l’appel d’une
telle fonction, il effectue le choix de la « bonne » fonction en tenant compte de la nature
des arguments effectifs. D’une manière générale, si les règles utilisées par le
compilateur pour sa recherche sont assez intuitives, leur énoncé précis est assez
complexe et nous ne le rappellerons pas ici (on le trouvera, par exemple, dans l’annexe
de nos différents ouvrages consacrés à C++ et publiés également aux Éditions
Eyrolles.) Signalons simplement que ces règles peuvent faire intervenir toutes les
conversions usuelles (promotions numériques et conversions standards, ces dernières
pouvant être dégradantes), ainsi que les conversions définies par l’utilisateur en cas
d’argument de type classe, à condition qu’aucune ambiguïté n’apparaisse.
Gestion dynamique de la mémoire
115
Précédent

- 116/398

Suivant