2.¿Como puedo crear una función con un número
variable de argumentos?
En
ocasiones, podemos querer escribir una función que use
un número variable de argumentos como parámetros.
La función printf es un buen ejemplo de esto. C tiene tres
macros definidas en la cabecera estándar stdarg.h que permiten
utilizar un número variable de argumentos.
También
se pueden usar en C++, pero para ello necesitamos eliminar la
comprobación de tipo que el compilador hace con todas las
funciones en C++. Para ello se utilizan tres puntos en la lista
de argumentos de la función.
Veamos
un ejemplo:
#
include <iostream.h>
# include <stdarg.h>
void display_var(int number, ...);
main()
{
int index = 5;
int one = 1, two = 2;
display_var (one, index);
display_var (3, index, index + two, index + one);
display_var (two, 7 ,3);
}
void display_var (int number, ...);
{
va_list param_pt;
va_start(param_pt, number);
cout << "The parameters are " ;
for (int index = 0; index < number; index ++)
cout << va_arg(param_pt, int) << " " ;
cout << '\n';
va_end (param_pt); }
La
salida de este programa será:
The parameters are 5.
The parameters are 5 7 6.
The parameters are 7 3.
Observamos
que: