Tecnología

Inicio

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).