Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/12/2012, 01:19
ecfisa
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Problemas con funciones y referencias

Cita:
...y me puedan explicar lo de valores por referencia,...
Hola sduvanandrey.

Cuando un argumento es pasado por valor a una función, esta recibe una copia de los valores de los parámetros. Cualquier modificación que se haga a alguno de ellos dentro de la función, no afecta el valor de la variable enviada como argumento.

Cuando un argumento es pasado por referencia se está enviando un apuntador a la variable enviada (la dirección de ella). Cualquier modificación que se haga dentro de la función, afecta el valor de la variable enviada como argumento. Obviamente no se puede enviar una constante como argumento de un parámetro por referencia.

Un ejemplo:
Código C++:
Ver original
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. /* Por valor */
  5. void fnValor(int arg) {
  6.   arg++;
  7. }
  8. /* Por referencia */
  9. void fnReferencia(int &arg){
  10.   arg++;
  11. }
  12.  
  13. int main()
  14. {
  15.   int valor = 5;
  16.   fnValor(valor);
  17.   cout << valor << endl;  // 5
  18.   fnReferencia(valor);
  19.   cout << valor;          // 6  
  20.   cin.get();
  21.   return 0;
  22. }

Saludos