miércoles, 23 de enero de 2013

Sobrecarga De Funciones C++



Sobrecarga de funciones

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:


// Ejemplo de función sobrecargada
#include <iostream.h>
#include <string.h>
inline void string_copy(char *copia, const char *original)
{
strcpy(copia, original);
}
inline void string_copy(char *copia, const *original, const int longitud)
{
strncpy(copia, original, longitud);
}
static char string_a[20], string_b[20];
void main(void)
{
string_copy(string_a, "Aquello");
string_copy(string_b, "Esto es una cadena", 4);
cout << string_b << " y " << string_a;
// La última sentencia es equivalente a un printf() de C

}

No hay comentarios.:

Publicar un comentario

Es muy importante tu comentarios: