Ej 11

Ej 11

de Luciana Munhos Fioravanzo -
Número de respuestas: 2

Hola,

Haciendo este ejercicio me surgió una duda respecto a uint & cantidad. Así está la letra:

/* Devuelve la aproximación de e^x hasta el término que sea menor a 'tol '. Devuelve en 'cantidad ' la cantidad de términos evaluados . */ 

float exp ( float x , float tol , uint & cantidad ) ;

Me resultó raro ver un pasaje por referencia en una función. Esto es considerado una buena práctica? O es penalizado? Pues tenía entendido que las funciones deben retornar un solo valor, sin usar pasaje por referencia, pero ahora me queda la duda, o lo interpreté mal.

Muchas gracias, 

Saludos!

En respuesta a Luciana Munhos Fioravanzo

Re: Ej 11

de Facundo Benavides -
hola luciana,
no es bueno ni malo necesariamente. depende, como muchas cosas del propósito. saliéndome un poco de este caso particular, sólo para abrir un poco la cancha. muchas veces se requiere retornar un valor (por lo cual pensaríamos en una función como estamos habituados a definirla) pero la realidad nos plantea, además, que el valor retornado pueda o no ser válido. es decir, no siempre el resultado será un valor que puedo considerar "correcto". en esos casos, es bastante común que además de devolver un valor, también definamos un parámetro "de salida" (con &) booleano que opere como una bandera que indica cuándo el retorno de la función puede o no ser utilizado correctamente. en esos casos, antes de utilizar el valor retornado, "miraría" la bandera para saber si es correcto utilizarlo.
volviendo al caso del ej11, lo que sucede es que necesitamos "retornar" 2 valores. la alternativa a lo planteado en la letra podría ser retornar un struct con 2 valores pero demanda un poco más de trabajo.
espero haber aclarado.
seguimos