La
sobrecarga (overload) de funciones consiste en declarar
y definir varias funciones distintas que tienen un mismo nombre.
Dichas funciones se definen de forma diferente. En el momento de
la ejecución se llama a una u otra función dependiendo
del número y/o tipo de los argumentos actuales de la llamada
a la función. Por ejemplo, se pueden definir varias funciones
para calcular el valor
absoluto de una variable, todas con el mismo nombre abs(),
pero cada una aceptando un tipo de argumento diferente y con un
valor de retorno diferente.
La
sobrecarga de funciones no admite funciones que difieran sólo
en el tipo del valor de retorno, pero con el mismo número
y tipo de argumentos. De hecho, el valor de retorno no influye en
la determinación de la función que es llamada; sólo
influyen el número y tipo de los argumentos. Tampoco se admite
que la diferencia sea el que en una función un argumento
se pasa por valor y en otra función ese argumento se pasa
por referencia.
A
continuación se presenta un ejemplo con dos funciones sobrecargadas,
llamadas ambas string_copy(), para copiar cadenas
de caracteres. Una de ellas tiene dos argumentos y la otra tres.
Cada una de ellas llama a una de las funciones estándar del
C: strcpy() que requiere dos argumentos, y strncpy()
que requiere tres. El número de argumentos en la
llamada determinará la función concreta que vaya a
ser ejecutada:
|