Código
int& maxref(int& a, int& b) { if (a >= b) return a; else return b; } maxref(i, j) = 0;
He estado practicando con referencias sencillas,como por ejemplo:
Código
int i=2; int& iref = i;
Lo malo es que en las funciones de este tipo me lio un poco,veamos se pasa la los parametros i,j y la funcion recoje la memoria donde están almacenados ambos,luego imaginemos que a es mayor que b,retorna a,pero ¿que retorna exactamente?¿su direccion de memoria?.Lo que si se es que el valor retornado se le asigna el valor de 0 pero lo que no entiendo bien es:
Código
int& maxref
He probado también a ponerlo sin el apersand,y me da el mismo valor¿es que estoy haciendo dos cosas iguales?Porque lo que me despista es eso,lo demas para nada.
Puede parecer un poco simple,pero he trabajado con muchas funciones de pasar los parametros por valor y por referencia tipo:
Código
int a =3; int j = 5; int funcion(&a,&j); int funcion(int *a ,int *b){ etc}
Pero nunca tuve que usar este tipo,he buscado algo de información pero no me lo ha dejado suficientemente claro...Si alguien me pudiera echar un cable se lo agradeceria.
Un saludo