Plantilla de función C ++ (con ejemplo)

Tabla de contenido

En este tutorial, aprenderemos sobre las plantillas de funciones en C ++ con la ayuda de ejemplos.

Las plantillas son características poderosas de C ++ que nos permiten escribir programas genéricos.

Podemos crear una única función para trabajar con diferentes tipos de datos usando una plantilla.

Declaración de plantilla de función

Una plantilla de función comienza con la palabra clave templateseguida de los parámetros de la plantilla dentro de los cuales sigue la declaración de la función.

 template T functionName(T parameter1, T parameter2,… ) ( // code )

En el código anterior, Tes un argumento de plantilla que acepta diferentes tipos de datos ( int, float, etc.), y typenamees una palabra clave.

Cuando se pasa un argumento de un tipo de datos functionName(), el compilador genera una nueva versión de functionName()para el tipo de datos dado.

Llamar a una plantilla de función

Una vez que hemos declarado y definido una plantilla de función, podemos llamarla en otras funciones o plantillas (como la main()función) con la siguiente sintaxis

 functionName(parameter1, parameter2,… );

Por ejemplo, consideremos una plantilla que suma dos números:

 template T add(T num1, T num2) ( return (num1 + num2); )

Luego podemos llamarlo en la main()función para sumar inty doublenúmeros.

 int main() ( int result1; double result2; // calling with int parameters result1 = add(2, 3); cout << result1 << endl; // calling with double parameters result2 = add(2.2, 3.3); cout << result2 << endl; return 0; ) 
Llamada a función basada en tipos de datos

Ejemplo: encontrar el valor absoluto de números

 #include using namespace std; template T add(T num1, T num2) ( return (num1 + num2); ) int main() ( int result1; double result2; // calling with int parameters result1 = add(2, 3); cout << "2 + 3 = " << result1 << endl; // calling with double parameters result2 = add(2.2, 3.3); cout << "2.2 + 3.3 = " << result2 << endl; return 0; )

Salida

 2 + 3 = 5 2,2 + 3,3 = 5,5

Articulos interesantes...