On 29 May 2007 20:24:19 -0700, "R.G.A.M." <rgam1989***yahoo.com.ar> wrote:
>El resultado que aparece siempre es 1, en este caso.
>¿Existe alguna forma de definir una función de modo que logre obtener
>los dos valores deseados? (por supuesto que es posible, sólo que no sé
El return propiamente dicho solo devuelve un resultado,
no es posible devolver dos.
Lo que se suele hacer es añadir un parámetro que sea un
puntero a una variable, y rellenear el valor de esa variable
antes del return.
Te pongo el ejemplo con dos parámetros:
void intercambio_variables(int var1,int var2, int *p1, int *p2)
{
*p1 = var2;
*p2 = var1;
}
O mejor:
void intercambio_variables(int *p1, int *p2)
{
int v = *p1;
*p1 = *p2;
*p2 = v;
}
O mejor:
void intercambio_variables(int &var1,int &var2)
{
int v = var1;
var1 = var2;
var2 = v;
}
Otra solucion es definir una estructura de datos que
contenga varias variables, entonces se puede devolver
un elemento de esa estrucrura que al ser un tipo compuesto
contiene varios valores simpels, pero no es buena idea, es
poco eficiente, cuando hay que devolver tipos compuestos tambien
se suele recurrir a pasar uan referencia como parámetro
y rellenar su valor antes del return.
Saludos :-) -Pedro-
http://www.maicas.net/
e-mail en
www.maicas.net