Plantilla en c ++

Plantilla en c ++
En C ++, las plantillas son características potentes. Nos permite escribir algún tipo especial de programas. Significa que podemos crear una sola función o clase única con diferentes tipos de datos se usan con la ayuda de plantillas.

Características de la plantilla

  1. La plantilla es una palabra clave en c++.
  2. Se utiliza una plantilla para definir la plantilla de función y la plantilla de clase.
  3. La plantilla es un procedimiento para hacer que nuestras funciones o clases se generalicen en lo que respecta al tipo de datos.

Clasificación de plantillas

Hay dos tipos de plantillas disponibles en C++.

  1. Plantilla de función
  2. Plantilla de clase.

a. Programación Ejemplo 1 de plantilla de función

#incluir
usando el espacio de nombres STD;
void add (int x, int y)

cout<< “ Sum is :\n ”<< x+y << endl ;

int main ()

agregar (10, 15);
Agregar (10.50, 10.25);

Producción

Explicación
Del programa anterior, sabremos por qué la plantilla necesita en este tipo particular de programa.

Aquí, simplemente definimos una función ADD y se pasan dos valores enteros como argumento. Simplemente imprime la suma de estas dos variables.

Dentro de la función principal, llamamos a la función Agregar y pasamos dos valores 10 y 15. Simplemente agrega estos dos valores y obtenemos los valores 25.

Pero en la segunda función agregar cuando pasamos dos valores de tipo doble 10.50 y 10.25, entonces el problema ocurre en el resultado de la suma. Porque aquí, pasamos dos tipos dobles de valores dentro de las variables enteras. Como resultado, se muestra un resultado incorrecto.

Para resolver este problema, presentamos plantilla.

b. Programación Ejemplo 2 de plantilla de función

#incluir
usando el espacio de nombres STD;
plantilla // Introducción de la plantilla de función
C add (c x, c y)

cout<< “ sum is :\n”<< x+y << endl ;

int main ()

suma (10, 15);
suma (10.50, 10.25);

Producción

Explicación
Donde definimos la función ADD, escribimos la plantilla de palabras clave. Luego, en el soporte angular, escribimos una palabra clave de clase. Luego escriba un titular de lugar llamado C. Después de eso dentro de la función Agregar donde escribimos el tipo de datos entero, todos estos enteros son reemplazados por el poseedor de lugar C. Este titular de lugar C será reemplazado por el tipo de datos adecuado cuando pasemos los valores dentro de la función de suma.

Cuando pasamos 10 y 15, C se reemplaza por los valores enteros pero en el segundo caso cuando pasamos dos valores de tipo doble 1.50 y 10.25, entonces C será reemplazado por los tipos de datos dobles. Es la ventaja de usar plantilla en el programa.

C. Programación Ejemplo 3 de plantilla de clase

#incluir
usando el espacio de nombres STD;
Ejemplo de clase

privado :
int x, y;
público :
Ejemplo (int a, int b)

x = a;
y = b;

prueba vacía ()

If (x> y)

cout<< x<< “ is the largest number ”<< endl ;

demás

cout<< y<< “ is the largest number ”<< endl ;


;
int main ()

Ejemplo OB1 (10, 15);
ob1.prueba () ;
Ejemplo OB2 (10.50, 10.25)
ob2.prueba() ;
regresar 0;

Producción

Explicación
Aquí, declaramos una clase llamada Ejemplo. En la clase, llamamos al ejemplo del constructor y pasamos dos variables de tipo entero para asignar el valor de la variable x e y. La función de prueba nos muestra qué valor es el más grande.

Dentro de la función principal, cuando pasamos dos valores 10 y 15 durante la creación de Object OB, muestra el resultado correcto.

Pero en el siguiente caso, cuando pasamos dos valores de tipo de datos dobles dentro de las variables de tipo entero, muestra un resultado incorrecto.

Para resolver este problema nuevamente, presentamos la plantilla en el próximo programa.

d. Programación Ejemplo 4 de plantilla de clase

#incluir
usando el espacio de nombres STD;
plantilla
Ejemplo de clase

privado :
C x, y;
público :
Ejemplo (C A, C B)

x = a;
y = b;

prueba vacía ()

If (x> y)

cout<< x<< “ is the largest number ”<< endl ;

demás

cout<< y<< “ is the largest number ”<< endl ;


;
int main ()

Ejemplo OB1 (10, 15);
ob1.prueba() ;
Ejemplo OB2 (10.50, 10.25);
ob2.prueba() ;
regresar 0;

Producción

Explicación
Antes de la definición de clase de ejemplo, escribimos una línea:

Plantilla < class C >

Como discutimos anteriormente, la plantilla es una palabra clave. Luego, dentro del soporte angular, escribimos la clase de palabras clave, luego un titular de lugar llamado C.

Después de eso, cada tipo de datos enteros debe reemplazarse con C.

Cuando pasamos dos valores de tipos enteros 10 y 15, C se reemplaza por las variables enteras. En el siguiente caso, cuando pasamos dos valores dobles 10.50 y 10.25, entonces C se reemplaza por el tipo de datos dobles.

La ventaja es que para el tipo de datos diferente no escribimos un código diferente.

Conclusión

Discutir en detalle sobre el concepto de plantilla, es claro para la creación de la plantilla, podemos trabajar con un tipo de datos diferente en un solo programa o en un programa de generalización.