C++
Referencias


Unha referencia é un alias —un nome alternativo— dun obxecto.

As referencias adoitan empregarse nas funcións, cando os parámetros se lles pasan por referencia:

void intercambiar(int& variable1 int& variable2) {
  int temporal = variable1;
  variable1 = variable2;
  variable2 = temporal;
}
 
int main()
{
  int a, b;
  intercambiar(a,b);
}

Neste exemplo, variable1 e variable2 son alias de a e b, respectivamente. Noutras palabras: variable1 é a. Non é un punteiro a a nin unha copia de a, senón a propia a. Calquera alteración a variable1 afectará asemade a a, e viceversa.

Cando usar punteiros e cando referencias editar

Empregue referencias cando poida, e punteiros cando deba.

En xeral, é preferible empregar referencias en vez de punteiros sempre que non sexa necesario cambiar o obxecto ao que se fai referencia. Normalmente, iso significa que as referencias teñen maior utilidade na interface pública dunha clase. As referencias adoitan aparecer na parte exterior dun obxecto, mentres que os punteiros adoitan aparecer na interior.

Un caso aparte sería o de que un parámetro ou o valor de devolución dunha función necesitase dunha “referencia sentinela”, é dicir, unha referencia que non fai referencia a un obxecto. A mellor forma de conseguir isto e mediante un punteiro, dándolle ao punteiro nulo este significado especial.


C++
Referencias