Urgent : passage par reférence

bkgi Messages postés 1 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
quel est l'utilité du passage par reférence ? merci d'avance.

2 réponses

  1. kikos897 Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
     
    en fait en c++ dans une fonction si tu lui passe des paramètres, la fonction va copié ce paramettre dans une variable qui serra vivante uniquement à l'intérieur de la fonction et serra détruite à la fin de la fonction , du coup si tu dois traiter ton paramettre il ne serra jamais modifier , sauf si tu le passe par référence.

    Un exemple pour plus d'ilustration

    // j'ai une fonction qui incrémente la variable int a et qui en retourne rien
    void maFonction( int a)
    {
    a= a+1;

    }

    // Dans mon main
    int main ()
    {
    int x=0; // je déclare une variable a et je l'initialise à 0

    maFonction(x); // appel de ma fonction

    cout<<"Valeur de x: "<<x; // ici la valeur affiché sera 0 , x n'a pas été modifié

    }

    Maintenant si je fais cette fonction au lieu de l'autre:

    void maFonction( int &a)
    {
    a= a+1;

    }

    // Dans mon main
    int main ()
    {
    int x=0; // je déclare une variable a et je l'initialise à 0

    maFonction(x); // appel de ma fonction

    cout<<"Valeur de x: "<<x; // ici la valeur affiché sera 1 , x a été modifié

    }

    dans le deuxième cas x va être modifié car il est passé par référence dans la fonction, ce qui fait que la fonction ne va pas crée de copie mais il va directement modifier la variable passée en paramètre

    PS: le passage par référence passe l'adresse de la variable c'est pour ça que la fonction peut la modifier car elle sait où cette variable se situe dans la mémoire du système.

    Si il y a un point pas clair n'hésite pas à le dire.
    0