Plantilla de clase con múltiples parámetros

Requisito previo: Plantillas en C++

Al crear plantillas, es posible especificar más de un tipo. Podemos usar más de un tipo de datos genéricos en una plantilla de clase. Se declaran como una lista separada por comas dentro de la plantilla de la siguiente manera:
Sintaxis:

template<class T1, class T2, ...>
class classname
{
      ...
      ...
};
// CPP program to illustrate
// Class template with multiple parameters
  
#include<iostream>
using namespace std;
  
// Class template with two parameters
template<class T1, class T2>
class Test
{
        T1 a;
        T2 b;
    public:
        Test(T1 x, T2 y)
        {
            a = x;
            b = y;
        }
        void show()
        {
            cout << a << " and " << b << endl;
        }
};
  
// Main Function
int main()
{
    // instantiation with float and int type
    Test <float, int> test1 (1.23, 123);
      
    // instantiation with float and char type
    Test <int, char> test2 (100, 'W');   
      
    test1.show();
    test2.show();
      
    return 0;
}

Producción:

1.23 and 123
100 and  W

Explicación del código:

  • En el programa anterior, el constructor Test tiene dos argumentos de tipo genérico.
  • El tipo de argumentos se menciona entre paréntesis angulares < > al crear objetos.
  • Cuando el argumento es más de uno, se separan por comas.
  • La siguiente oración
    Test  test1 (1.23, 123);

    le dice al compilador que el primer argumento es de tipo float y otro es de tipo int .

  • Durante la creación de objetos, se llama al constructor y los argumentos de la plantilla reciben los valores.

Este artículo es una contribución de Sakshi Tiwari . Si le gusta GeeksforGeeks (¡sabemos que le gusta!) y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *