C++ Plantillas
Las plantillas son la base de la programación genérica, es decir, escribir código de manera independiente de cualquier tipo específico.
Las plantillas son el modelo o la fórmula para crear clases o funciones genéricas. Los contenedores de bibliotecas, como los iteradores y los algoritmos, son ejemplos de programación genérica y todos utilizan el concepto de plantillas.
Cada contenedor tiene una definición única, comovector, podemos definir vectores de muchos tipos diferentes, comovector <int>ovector <string>。
Puede usar plantillas para definir funciones y clases. A continuación, veamos cómo se usan.
Plantillas de funciones
La forma general de definición de una plantilla de función es la siguiente:
Aquí, type es el nombre del marcador de posición del tipo de datos que utiliza la función. Este nombre se puede usar en la definición de la función.
El siguiente es un ejemplo de plantilla de función que devuelve el máximo de dos números:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Max(i, j): 39 Max(f1, f2): 20.7 Max(s1, s2): World
Plantillas de clases
Así como definimos plantillas de funciones, también podemos definir plantillas de clases. La forma general de declaración de una clase genérica es la siguiente:
template <class type> class class-name {
.
.
.
}
Aquí,typees el nombre del tipo de marcador de posición, que se puede especificar cuando se instancia la clase. Puede usar una lista separada por comas para definir múltiples tipos de datos genéricos.
El siguiente ejemplo define la clase Stack<> e implementa métodos genéricos para realizar operaciones de push y pop de elementos:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
7 hello Exception: Stack<>::pop(): empty stackOtras extensiones