Sintaxis
La sintaxis básica para la definición de una plantilla de función en C++ es la siguiente:
template <class TIPOD> // Prefijo de la plantilla
void nombreFunción(TIPOD variable);
template <class TIPOD>: Define una plantilla de función, dondeTIPODes un parámetro de tipo que se utilizará dentro de la función.void nombreFunción(TIPOD variable): Declaración de la función utilizando el tipo genéricoTIPOD.
Ejemplo
El siguiente ejemplo muestra cómo crear una plantilla de función para calcular el valor absoluto de un número:
#include <iostream>
#include <conio.h>
using namespace std;
// Declaración de la plantilla de función
template <class TIPOD>
void mostrarAbs(TIPOD numero);
int main() {
int num1 = -1221;
float num2 = -122.311;
double num3 = -12.3421241;
// Llamada a la plantilla de función con diferentes tipos de datos
mostrarAbs(num1);
mostrarAbs(num2);
mostrarAbs(num3);
getch();
return 0;
}
// Definición de la plantilla de función
template <class TIPOD>
void mostrarAbs(TIPOD numero) {
if (numero < 0) {
numero *= -1;
}
cout << "El valor absoluto del numero es: " << numero << endl;
}
Explicación del Ejemplo
- Directivas del Preprocesador: Se incluyen las librerías necesarias (
<iostream>para entrada y salida estándar,<conio.h>para la funcióngetch()). - Declaración de la Plantilla de Función:
template <class TIPOD>: Define una plantilla de función con el parámetro de tipoTIPOD.void mostrarAbs(TIPOD numero): Declaración de la función que acepta un parámetro de tipoTIPOD.
- Función principal (
main):- Se declaran variables de diferentes tipos (
int,float,double) con valores negativos. - Se llama a la función
mostrarAbspara cada una de estas variables.
- Se declaran variables de diferentes tipos (
- Definición de la Plantilla de Función:
- La función
mostrarAbsacepta un parámetro de tipoTIPOD. - Si el número es negativo, se multiplica por
-1para obtener su valor absoluto. - Se muestra el valor absoluto del número en la consola.
- La función
Salida Esperada
El valor absoluto del numero es: 1221
El valor absoluto del numero es: 122.311
El valor absoluto del numero es: 12.3421
--------------------------------
Process exited after 41.18 seconds with return value 0
Presione una tecla para continuar . . .