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: