Saltar al contenido principal
eLearner.app
Módulo 8 · Lección 1 de 217/18 en el curso~12 min
Lecciones del módulo (1/2)

Funciones Plantilla

Los Templates (Plantillas) permiten escribir código genérico en C++. A través de las plantillas, podemos definir funciones o clases que operan sobre parámetros de tipo genéricos, permitiendo que sea el compilador el que genere el código real para los tipos específicos requeridos.

Definición de una Función Template

Para definir una función plantilla, anteponemos a la definición de la función la palabra clave template, seguida de la lista de parámetros de tipo encerrados entre paréntesis angulares <>. Se suele utilizar typename o class para declarar un tipo genérico.

Code
// T è il parametro di tipo generico
template <typename T>
T add(T a, T b) {
    return a + b;
}

Llamada a la Función y Overload Resolution

Cuando llamamos a la función, podemos especificar explícitamente el tipo entre paréntesis angulares:

Code
int res1 = add<int>(5, 10);
double res2 = add<double>(3.14, 2.71);

Sin embargo, el compilador de C++ suele ser capaz de deducir el tipo automáticamente a partir de los parámetros de entrada (Template Argument Deduction):

Code
int res1 = add(5, 10); // El compilador deduce che T è int

Pruébalo tú mismo

Ejercicio#cpp.m8.l1.e1
Intentos: 0Cargando...

Define una función plantilla llamada myMax que acepte dos parámetros del tipo genérico T y devuelva el mayor de los dos.

Cargando editor...
Mostrar pista

Comienza escribiendo `template <typename T>` seguido de la firma `T myMax(T a, T b)`.

Solución disponible después de 3 intentos

Ejercicio#cpp.m8.l1.e2
Intentos: 0Cargando...

Escribe una función plantilla printPair que acepte dos parámetros de tipos genéricos diferentes T1 y T2 y imprima en pantalla los dos argumentos separados por un espacio usando std::cout.

Cargando editor...
Mostrar pista

La declaración del template debe especificar dos parámetros: `template <typename T1, typename T2>`.

Solución disponible después de 3 intentos