Template
Before this , we always define a function or class to do same operations with variables from fixed type. when type changed, we should define another function or class to do it.
Template provide a mechanism that we can only define a function to do the same works with variables from different types.
define: template <typename T>
exmple:
Funtion Template:
#include<iostream>
using namespace std;
template <typename T>
T sum(T a, T b)
{
return a + b;
}
int main ()
{
int a = sum(3 , 4);
float b = sum(3.4f, 4.5f);
cout << "3 + 4 = " << a << endl;
cout << "3.4 + 4.5 = " << b << endl;
return 0;
}
Class Template:
#include<iostream>
using namespace std;
template <typename T>
class Complex
{
T real, imag;
public:
Complex(T r = 0, T i = 0)
{
real = r;
imag = i;
}
void print()
{
cout << real << " + " << imag << " i";
cout << endl;
}
};
int main()
{
Complex<int> c1(1, 2);
Complex<float> c2(1.2, 2.3);
cout << "c1 = ";
c1.print();
cout << "c2 = ";
c2.print();
return 0;
}