Le résultat dune fonction peut être de nimporte quel type, à lexception dune fonction et dun tableau ; ce dernier sera remplacé par un pointeur, puisque nous avons vu quen réalité un type comme int[]
recouvrait un pointeur int*
sur le premier élément. On peut renvoyer un pointeur sur une fonction (voir plus loin).
Une fonction peut en particulier renvoyer une référence, comme ceci :
int& f(void)
Nous verrons de nombreuses utilisations de cela en programmation orientée objet, notamment pour les nouveaux opérateurs (voir chapitre 7). Indiquons cependant ici que les résultats de type références sont aussi trompeurs que ceux de type pointeurs. Il ne faut pas écrire :
int& f(void){ int i; ... return i; // non erreur}
car la variable i
est détruite en fin de fonction. Par contre, on peut ici aussi utiliser une variable statique :
int &f(void) { static int i; ... return i; // ok}
![]() | ![]() | Suivant ![]() |