Acabamos de aprender sobre la sobrecarga de funciones , que puede manejar múltiples tipos de datos. Aunque tienen el mismo nombre, aún deben definirse por separado. ¡Sería fantástico si el código se pudiera simplificar y crear plantillas! Con este fin, C ++ proporciona un mecanismo de plantilla de funciones que mejora enormemente la reutilización del código.
La plantilla de función le permite crear una función general que admita múltiples parámetros formales. Utilice la plantilla de palabras clave para definirla de la siguiente forma:
plantilla <nombre de tipo de clase 1, nombre de tipo de clase 2...> valor de retorno nombre de función (columna de lista de parámetros formales) lista de parámetros de plantilla {cuerpo de función}
Para explicar, en esta forma general, la plantilla en la primera línea <nombre del tipo de clase 1, nombre del tipo de clase 2...> es una declaración de plantilla, es la palabra clave que define la función de la plantilla. corchetes angulares. Los anteriores son Usar clase (o nombre de tipo para definir). Luego siga con la plantilla de función definida. Recuerde no agregar otras declaraciones en el medio, de lo contrario se informará un error.
¡A continuación, echemos un vistazo a un ejemplo específico!
#include<iostream>usingnamespacestd;template<classT1,classT2>T1add(T1x,T2y){cout<<sizeof(T1)<<,<<sizeof(T2)<<t;returnx+y;}intmain(){ cout<<add(10,20)<<endl;;cout<<add(3.14,5.98)<<endl;cout<<add('A',2)<<endl;return0;}
Lo anterior es una plantilla para una función de suma. Puede ver que hemos definido una plantilla de función de suma y los tipos de variables que contiene se reemplazan por T1 y T2.
En la función principal, cuando realmente la llamamos, la llamamos tres veces y pasamos tres tipos diferentes. Los tipos T1 y T2 en la función de plantilla se cambiarán a tipos específicos de acuerdo con el tipo real pasado. Esta transformación se llama. una instancia del cambio.
Luego ejecutamos el programa y podemos ver qué tipos T1 y T2 se llaman cada vez, cuántos bytes son y el resultado de la suma. El efecto de ejecución es el siguiente:
Puede comprender el código línea por línea y completar el experimento usted mismo.