Urgent : passage par reférence

Fermé
bkgi Messages postés 1 Date d'inscription jeudi 15 novembre 2012 Statut Membre Dernière intervention 15 novembre 2012 - 15 nov. 2012 à 21:35
 Utilisateur anonyme - 24 nov. 2012 à 23:06
Bonjour,
quel est l'utilité du passage par reférence ? merci d'avance.


2 réponses

kikos897 Messages postés 58 Date d'inscription vendredi 2 décembre 2011 Statut Membre Dernière intervention 20 novembre 2014
16 nov. 2012 à 00:47
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