void funcion (int y = 2)
En este caso, estamos definiendo un valor, 2, que tomará la variable
y
en caso de que no se pase nada en la llamada a la
función:
funcion ();
Aunque no se ha pasado ningún argumento, la función
trabajará. Como no se ha pasado ningún valor, y
toma el valor 2, y la función se ejecuta. Si quisiéramos pasar
un valor, se haría como en un caso normal:
funcion (231);
Ahora y
toma el valor 231.
En el caso de que la función tenga una lista con varios argumentos,
los que tengan valores por defecto deben ir al final:
void funcion2 (int var1, int var2, int var3 = 0, int var4 = 0)
es la forma correcta de hacerlo. En cambio:
void funcion2 (int var1, int var2 = 0, int var3 = 0, int var4)
no es correcto. La razón es que si quisiéramos llamar a esta
función con tres argumentos, el compilador no distinguiría si
los valores que pasamos corresponden a var1, var2
y
var3
o a var1, var3
y var4.
Resumiendo, hemos de seguir las siguientes reglas al declarar funciones con parámetros por
defecto:
Veamos un ejemplo:
int volumen (int longitud, int anchura = 2, int altura = 3);
main()
cout << "Volumen =" << volumen (x,y,z) << '\n';
cout << "Volumen =" << volumen (x,7) << '\n';
int volumen (int longitud, int anchura, int altura)
# include <iostream.h>
El resultado de la ejecución de este programa será:
{
int x = 10, y = 12, z = 15;
cout << "Volumen =" << volumen (x,y) << '\n';
cout << "Volumen =" << volumen (x) << '\n';
cout << "Volumen =" << volumen (5,5,5) << '\n';
}
{
return longitud * anchura * altura;
}
Volumen = 1800.
Volumen = 360.
Volumen = 60.
Volumen = 210.
Volumen = 125.
En este programa: