C/Visual C - Devolver referencia constante

 
Vista:

Devolver referencia constante

Publicado por Oliver Ramirez (339 intervenciones) el 23/07/2002 14:48:38
De que me sirve devolver una referencia en una funcion?
int& funcion();

de que me sirve devolver una referencia constante en una funcion?
const int& funcion();
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Devolver referencia constante

Publicado por chuidiang (677 intervenciones) el 25/07/2002 10:26:33
La mayor utilidad que he visto a devolver referencias es el poder encadenar operadores en una misma línea. Por ejemplo,
cout << "Hola" << "Adios" << 1 << endl;
es posible porque el método "cout operator<<()" devuelve una referencia a cout, con lo que al evaluar
cout << "Hola" el resultado es cout, siendo posible entonces poner detrás el << "Adios".
De otra forma no sería posible.

Pasa lo mismo con, por ejemplo
a = b + c + d + e;
cuando a,b,c,d y e son instancias de clases tuyas.

Otro motivo para devolver referencias es cuando quieres devolver un dato/clase de tamaño grande y quieres evitar la copia.
int funcion() { return a;} devuelve una copia de a
int &funcion() { return a;} devuelve el mismo a, sin hacer copia. Ganas velocidad si a fuera una estructura muy grande.

Lo de const es para impedir que desde fuera modifiquen el dato que has devuelto, que puede ser interno de la clase.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar