Résultat d’une fonction

Le résultat d’une fonction peut être de n’importe quel type, à l’exception d’une fonction et d’un tableau ; ce dernier sera remplacé par un pointeur, puisque nous avons vu qu’en 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}
Précédent Précédent Sommaire Sommaire Suivant Suivant