Está en la página 1de 10

Resumen y Ejercicios

ESTRUCTURA DE DATOS Clase 15 y 16


Segundo Semestre 2021
SOBRECARGA DE FUNCIONES
C++ permite especificar más de una función del mismo nombre en el mismo ámbito. Estas
funciones se denominan funciones sobrecargadas . Las funciones sobrecargadas permiten
proporcionar una semántica diferente para una función, en función de los tipos y el
número de argumentos. Por ejemplo, supongamos que tenemos una función que devuelve
el cuadrado de un número.

int cuadrado(int n){return (n*n); }

¿Qué pasa? Que esta función sólo acepta un número entero (int) así que, si queremos
pasar como argumento un número de tipo real float o double no podríamos, a menos que
hiciéramos dos funciones como sigue:

float fcuadrado(float n){return (n*n); }


double dcuadrado(double n){return (n*n); }

Pero como C++ soporta la sobrecarga, se puede implementar funciones sobrecargadas


que tuvieran el mismo nombre y diferentes argumentos. En estos casos el compilador va a
verificar el tipo de parámetro enviado y luego llamará la función correspondiente.
EJEMPLO DE SOBRECARGA
#include <iostream>
using namespace std;
void mostrar(int x);
void mostrar(char a);
void mostrar(char *c);
int main()
{ mostrar(7);
mostrar('s’);
mostrar("Aprender a Programar PRO");
return 0;
}
void mostrar(int x) { cout<<"Este es un entero: "<<x<<endl; }
void mostrar(char a) { cout<<"Esta es una letra: "<<a<<endl; }
void mostrar(char *c) { cout<<"Esta es una cadena: "<<c<<endl;}
Permiten crear funciones o
clases que funcionen con tipos
PLANTILLAS (TEMPLATES)
de datos genéricos. Es decir,
clases que funcionen con int,
double, float, etc. o cualquier
objeto en particular.
Permiten definir funciones
genéricas.
Las plantillas permiten una
mayor reutilización de código.
Una función genérica define un
conjunto de operaciones que se
aplicarían.
Una plantilla de funciones es
como un patrón y describe las
propiedades genéricas de una
función.

https://www.youtube.com/watch?v=5QI3unnfKF0
PLANTILLA
CON CLASES

https://www.youtube.com/watch?v=oQl38Va3_bk
FORMATOS PLANTILLAS
1. El tipo Template debe
aparecer por lo menos una
vez en la lista de
parámetros.
2. Una “plantilla de función” o
“función genérica” define un
conjunto ilimitado de
funciones sobrecargadas.
3. Las plantillas no generan
código directamente, sino
que la generación de código
se realiza en el momento en
que se necesita, con el tipo
correspondiente. Es decir, se
interpreta en tiempo de 4. Las plantillas siguen las mismas normas que la
ejecución. sobrecarga, solo se mira la lista de parámetros, no el
retorno.
Así como se tiene
sobrecarga de
SOBRECARGA DE TEMPLATES funciones,
también tenemos
sobrecarga de
plantillas.

¿Qué sucede si tenemos un caso


especial en el que la función
genérica no sirve? Utilizaremos una
función específica con el mismo
nombre de la función genérica. A
esto le llamaremos “Especialización
de funciones genéricas”.
Regla para utilización de funciones sobrecargadas.
SOBRECARGA DE 1.- Busca coincidencia exacta de funciones, es decir, funciones
específicas.
TEMPLATES 2.- Busca una plantilla de función (template).
3.- Utiliza las reglas de sobrecarga normal. Si no encuentra
ninguna coincidencia, se genera un error.
LINK A EJEMPLO DE
SOBRECARGA DE FUNCIONES
Y TEMPLATES

https://onlinegdb.com/CUa9Osn5v
Clase 15 y 16
ESTRUCTURA DE DATOS Segundo Semestre 2021

También podría gustarte