Article by: Manish Methani
Last Updated: October 15, 2021 at 2:04pm IST
Suppose you written a program which sorts an list of integer datatypes. So you had written a function which sorts integer values. Then suddenly in future you got a requirement of sorting a list of double datatypes. Then you have to write another function which handles double values. Then you got a requirement of writing a character values. So yu have to write one more function.
So here comes Template into existence. Template accepts generic types . Any type you pass Template will handle it. You have to write a single function.
#include using namespace std; // One function works for all data types. template T myMax(T x, T y) { return (x > y)? x: y; } int main() { cout << myMax('a', 'z') << endl; // call myMax for char cout << myMax(2, 4) << endl; // Call myMax for int cout << myMax(3.0, 7.0) << endl; // call myMax for double return 0; }
z 4 7
Templates are expanded at compile time. First we call myMax function with char type. Then myMax function accepts parameter of char type. Second time we call myMax function with int type. Then myMax function accepts parameter of int type. Third time we call myMax function with double type. Then myMax function accepts parameter of double type.