Está en la página 1de 2

Sobrecarga de funciones:

Anteriormente, si tenía una función que trabajaba con dos valores enteros y si deseaba
utilizar otra función similar pero que trabajara con tres valores enteros, debía de definirla
con nombre distinto. Para eliminar la necesidad de duplicar funciones, C++ permite
definir múltiples funciones con el mismo nombre, llamado “Sobrecarga de funciones”
que es tener múltiples funciones declaradas en el mismo ámbito, con el mismo nombre
exacto en el mismo lugar (conocido como alcance ), siempre y cuando sus declaraciones
de parámetros sean diferentes.

Sintaxis:

#include <iostream.h>

int nombre_funcion(int); // funcion base, con parametro int

int nombre_funcion(float); // 2° funcion con mismo nombre, con parametro float

float nombre_funcion(float, float); //3° funcion con mismo nombre, con dos parametros

main()
{ // llamado a las funciones
return (0);}

¿ Qué función se ejecutará cuando se llame a la funcion ?

Cuando se llama a una función sobrecargada, el compilador de C++ selecciona la


función adecuada examinando el número correcto de parámetros formales y que sean del
tipo especificado, clases y orden de los argumentos de la llamada. La sobrecarga de
funciones se utiliza normalmente para crear varias funciones con el mismo nombre que
realicen tareas similares, pero sobre distintas clases de datos.

La selección de que función se llamará realmente no resta tiempo de ejecución ni


compilación. Si se pusieran nombres diferentes a cada una de las funciones
sobrecargadas, no habría ninguna diferencia en la velocidad o tamaño de ejecución del
programa resultante.
Las funciones sobrecargadas se distinguen por sus firmas, una firma es una combinación
del nombre de la función y de sus clases de parámetros. El compilador codifica cada
identificador de función, el número y clase de sus parámetros (lo que a veces se conoce
como deformación de nombres o decoración de nombres), permitiendo el enlace a
prueba de clases de datos. El enlace a prueba de clases de datos asegura que se llame a la
función sobrecargada correcta y que los argumentos concuerden con los parámetros. El
compilador detecta y reporta los errores de enlace.

EJEMPLO:

#include <iostream>
// funciones prototipo
int area(int);
int area(int, int);
float area(float);

void main(void)
{
// Define las variables argumento de la función
int lado = 3;
int longitud = 4;
int ancho = 5;
float radio = 6.25;

// Llamadas de función
cout << "El área del cuadrado es : " << area(lado) << endl;
cout << "El área del rectángulo es: " << area(longitud, ancho) << endl;
cout << "El área del círculo es : " << area(radio) << endl;
} // Fin de main()

// Esta función calcula el área de un cuadrado


int area(int l) { return l * l; } // fin de area()
// Esta función calcula el área de un rectángulo
int area(int largo, int ancho) { return largo * ancho; } // Fin de area()
// Esta función encuentra el área de un círculo
float area(float r) { return 3.14159 * r * r; } // Fin de area()

También podría gustarte