Références

En C pour faire un swap, on écrit

void swap(int* p, int* q) {
    int tmp = *p;
    *p = *q;
    *q = tmp;
}

int x, y;
swap(&x, &y)

Le C++ veut sortir de l'esprit "pointeur". Le soucis des pointeurs c'est :

  • c'est moche *p + *q au lieu du naturel x + y
  • on peut modifier p et *p donc trop de bugs

Pour cela, il propose les références.

Définition d'une référence

Une référence est un nouveau nom pour désigner un objet existant.

void swap(int& i, int& j)
{
    int tmp = i;
    i = j;
    j = tmp;
}

int x, y;
swap(x, y);

L'implémentation derrière la scène est la même que les pointeurs. Mais c'est une mauvaise vision.

Voir aussi

[https://isocpp.org/wiki/faq/references]