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.
// 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:
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):
int res1 = add(5, 10); // El compilador deduce che T è int
Pruébalo tú mismo
Define una función plantilla llamada myMax que acepte dos parámetros del tipo genérico T y devuelva el mayor de los dos.
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
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.
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