Prerequisite: Templates in C++
While creating templates, it is possible to specify more than one type. We can use more than one generic data type in a class template. They are declared as a comma-separated list within the template as below:
Syntax:
CPP
Output:
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;
}
1.23 and 123 100 and WExplanation of the code:
- In the above program, the Test constructor has two arguments of generic type.
- The type of arguments is mentioned inside angle brackets < > while creating objects.
- When argument is more than one, they are separated by commas.
- Following statement
Test test1 (1.23, 123);
tells the compiler that the first argument is of type float and another one is int type. - During creation of objects, constructor is called and values are received by template arguments.