[C con Clase] Retorno de std::wstring creado localmente

Jose Cabrera josmaca en gmail.com
Lun Dic 21 07:42:10 CET 2009


No es correcto ya que cuando tu haces un return lo que devuelves no es el
objeto aux sino el valor del mismo, es decir al hcaer return primero le das
el valor de aux a la función que llame a esta, ejemplo

string frase;
frase = wstr2str(.....);

Aqui aux se almacena en frase y seguidamente al terminar wstr2str desaparece
aux.
Si lo único que hicieses es imprimir por pantalla el resultado, justo
despues de imprimir por patanlla tendrias que llamar otra vez a la función
si necesitas conocer el valor otra vez.

Espero que te sea de aclaración.


El 20 de diciembre de 2009 18:16, Giancarlo <gcdotta en gmail.com> escribió:

> Hola a todos. Estoy comprobando el código de un programa que funciona,
> hecho por un programador de Visual C++ con bastante experiencia, y me
> encuentro con esta función:
>
> std::string wstr2str(const std::wstring& s){
>    std::string aux(s.length(), ' ');
>    std::copy(s.begin(), s.end(), aux.begin());
>    return aux;
> }
>
> Se está usando la librería <string>.
>
> Desde mi punto de vista el valor que devuelve la función será desconocido
> ya que el objeto aux se destruirá al salir de ella. ¿Es correcto lo que
> pienso o se me escapa algo?
>
> Gracias
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20091221/5a714a98/attachment.html>


Más información sobre la lista de distribución Cconclase