El paso por referencia se utiliza cuando quieres cambiar el valor de la variable/objecto dentro de la función. Creo que con un ejemplo se entenderá mejor:
#include <iostream>
void modificarInt(int &variable);
int main() {
int var = 0;
modificarInt(var);
std::cout << var << std::endl;
return 0;
}
void modificarInt(int &variable) {
variable = 5;
}
Salida en consola de este programa:
Si en este ejemplo no se pasara por referencia, la función no haría nada, porque simplemente le has pasado una
copia del entero, mientras que cuando pasas una variable/objeto por referencia, es como si le dijeras a C++ que en la función'modificarInt' use la variable 'var' de la función main, por lo que cuando modificas la variable dentro de la función 'modificarInt', en realidad estás modificando la variable 'var'.
Se podría decir que la variable 'variable' de la función
se refiere a la variable 'var' de la función main