Ver Mensaje Individual
  #2 (permalink)  
Antiguo 02/08/2011, 15:51
sam90
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 6 meses
Puntos: 228
Respuesta: Referencias &

Proba este ejemplo
Código C++:
Ver original
  1. void cambiar(int & a) {a = 1;}
  2.  
  3. void cambiar2(int a) {a = 2;}
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.     int entero = 0;
  10.     cambiar(entero);
  11.     cout << entero<< endl;
  12.     cambiar2(entero);
  13.     cout << entero << endl;
  14.  
  15. }

Vas a notar que el primer llamado modifico la variable entero pero el segundo no. Pasar una variable por referencia o devolver la referencia es parecido a los punteros. Nada mas que como referencia vos usas la variable como si fue declarada. No tenes que usar el operador * para modifcar su valor.

A nivel memoria no estoy muy claro como se maneja.

El ejemplo que pusiste no se si es muy util, porque estarias devolviendo una referencia a un entero que no es statico, este pierde sentido al volver de la funcion.

Pero saliendo de ese problema. Con la primera implementacion, cualquier modificacion que hagas en c se hara sobre el mayor de los dos.

Saludos