¿Está bien devolver una referencia a una variable local desde una función? Por local quiero decir que la variable se crearía (en la pila, es decir, sin usar nueva) dentro de la función y su alcance está dentro de esa función solamente. Obtuve respuestas contradictorias cuando busqué sobre esto. 1) dice que el tipo de uso es correcto pero 2) lo contradice.pregunta sobre la función que devuelve una referencia en C++
1) http://functionx.com/cpp/examples/returnreference.htm
2) http://www.cprogramming.com/tutorial/references.html (bajo Referencias & sección Seguridad)
¿Cuál de ellas es la correcta?
Otra pregunta que tuve, si 1) es correcta, son las siguientes para el mismo propósito.
i) int & a = func();
ii) int a = func(); donde func() devuelve una referencia a una int (variable local en esa función).
En los dos casos anteriores, no hay copia del valor de retorno involucrado no es así. Me gustaría evitar la copia de valores devueltos ya que el valor de retorno podría ser grande.
Gracias de antemano.
Raghava.
no tengo idea de lo que la primera referencia que tienes está tratando de hacer, aparte de propagar errores a través del código C++. No confíes en eso –
posible duplicado de http://stackoverflow.com/questions/1465851/returning-const-reference-to-local-variable-from-a-function –
El enlace (1) es definitivamente erróneo. Enlace (2) No vi el cambio por referencia. –