Seguimos con el recordatorio de C++ comparando la forma en que le pasamos los parametros a una función o procedimiento.
Hay dos formas:
Por VALOR
Los parámetros de entrada (valor) se usan para proporcionar información de entrada a un
procedimiento. Dentro de éste pueden considerarse como variables cuyo valor inicial es el resultado de
evaluar los parámetros actuales. Como parámetro actual debe aparecer una expresión cuyo resultado
sea un valor de un tipo asignable al correspondiente parámetro formal. Puesto que las variables usadas
como parámetros formales de entrada no sirven para cambiar a los parámetros actuales (sólo para
conocer su valor en el momento de la llamada y asignarle un nombre a ese valor dentro del
procedimiento) se les suele denominar Parámetros por valor.
Ejemplo:
void dibLineas( int anchura, int altura ) { int nFila; int nColumna; for( nFila = 1 ; nFila <= altura; ++nFila ) { for( nColumna = 1; nColumna <= anchura; ++nColumna ) { cout << "-"; } cout << endl; } }
Por REFERENCIA
Para usar parámetros de entrada/salida, el parámetro formal debe estar precedido por el símbolo & y el parámetro actual debe ser una variable (no una expresión cualquiera). Los parámetros de entrada/salida se usan cuando se desea que un procedimiento MODIFIQUE el contenido de la variable actual. El hecho de definir estos parámetros explícitamente como variables hace consciente al programador de los lugares donde un procedimiento cambia a una variable que se le pase como parámetro. El funcionamiento de los parámetros de entrada/salida está basado en pasar al procedimiento una referencia a la variable actual en lugar de su valor.
Ejemplo:
void raices( double a, double b, double c, double &R1, double &R2 ) { double DiscriminanteS; // Se supone un discriminante positivo DiscriminanteS = sqrt( b*b-4.0*a*c ); R1 = (-b + DiscriminanteS) / (2.0*a); R2 = (-b - DiscriminanteS) / (2.0*a); }