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 naturelx + 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]