-
Cómo utilizar plantillas de función en C ++
-
Supongamos que desea hacer una función, Mult, que multiplica dos números. Puede escribir una versión separada para cada tipo de datos, que es la sobrecarga de métodos, o puede utilizar ++ plantillas de función C y tienen una firma de función en lugar de tres. C ++ plantillas de función automatizar tipo de entrega, dan al usuario de la biblioteca de potencia más expresivo y reducir el costo de mantenimiento del código.
Instrucciones
1 Sobrecargar una función que multiplica el número de tipo int, float y double:
int Mult (int a, int b) {
volver (a
b);
}
flotar Mult (float a, b flotar) {
volver (a b);
}
Mult doble (double a, doble b) {
retorno (a * b);
}
2 Hacer lo mismo que paso 1, usando C ++ plantillas de función:
template <class T>
T Mult (Ta, Tb) {
retorno (a * b);
}
3 Comparar Paso 2 al Paso 1. La línea adicional de código introducido por encima de la definición de la función en el paso 2 parece ser una buena solución de compromiso para repetir el cuerpo de la función dos o más veces.4 Volver al código de la Etapa 2. T es el nombre de tipo. La clase de palabras clave significa que T puede tomar cualquier identidad. Es un tipo genérico que el compilador interpreta sobre la marcha en función de qué parámetro el usuario pasa a la misma. Así que T puede ser un número entero, un flotador, una doble o una clase que tiene el operador de multiplicación definida; de lo contrario la operación de multiplicación permanece indefinido.
5 Prueba a fondo la firma de la función que utiliza plantillas. Realizar pruebas con todos los tipos de datos que se esperaban para asegurarse de que no obtiene resultados inesperados.
Consejos y advertencias
- Las plantillas son un elemento relativamente nuevo de C ++.
- Es posible anidar plantillas y realizar otras hazañas de programación con ellos. Esto se llama metaprogramming y requiere un libro.
- Las plantillas son una característica de la biblioteca de plantillas estándar (STL).