Define Templates
Types of Templates Explain Function Templates Explain Class Templates
A generic function defines a general set of operations that will be applied to various types of data that a function will operate upon. A generic class defines the algorithm that specifies the actual type of data when objects of that class are created A generic class and a generic function is created using the keyword Template
// TEMPLATES DEFINITION #include<iostream.h> #include<conio.h> template <class T> T max(T x,T y) { return(x>y)?x:y; }; void main() { clrscr(); cout<<max(17,19)<<endl; cout<<max(1.5,6.7)<<endl; cout<<max('A','B')<<endl; getch(); }
Output : 19 6.7
function template Example ===================== #include<iostream.h> #include<conio.h> template<class T1,class T2> void good(T1 x,T2 y) { clrscr(); cout<<x<<" "<<y<<endl; } void main() { good(456,"hello"); getch(); }
Output :
456 hello
For Example #include<iostream.h> : void function1(int i) { cout<<"The value of i is"<<i<<endl; } void function2(double d) { cout<<"The integer part is"<<int(d); d - = int(d); cout<<"The factorial part is"<<d; } Output : void main() The value of i is 2 { function1 (2); The integer part is 23 function2 (23.5); The factorial part is 0.5 }
A program to define the function template for swapping two items of the various data type as integer and floating point number #include<iostream.h> #include<conio.h> template<class T>T swap( &second) { T temp; temp = first; first = second; T &first, T
void main() { int ix,iy; float fx,fy; cout<<"Enter any twoNo \n"; cin>>ix>>iy; cout<<"Enter any 2 Real No"; cin>>fx>>fy; swap(ix,iy); cout<<"after swapping; cout<<ix <<iy; swap(fx,fy); cout<<"After swapping : cout<<fx <<
second = temp;
return(0); } int swap(int &a,int &b);
fy<<endl;
getch(); }
Default Constructor
#include<iostream.h> #include<conio.h> template<class T> class sample { private: T value; public: sample(T=0) { } void display() { cout<<"default constructor is called"<<endl; cout<<"Content of the value "<<value<<endl; } };
void main() { clrscr(); sample<int> obj1; obj1.display(); sample<int> obj2; obj2.display(); getch(); } //it prints the ascii value of the int and float. Overloading -> We have to pass a value for the variable and have to implement Overridding -> To overwrite the method or function.
CLASS TEMPLATE
#include<iostream.h> template<class q> class sample { private: q value,value1,value2; public: get(); sum(); template <class q> { void sample<q>::get() { cout<<"Enter a value for the value1"<<endl; cin>>value1; cout<<"Enter a value for the value2"<<endl; cin>>value2;
} } template<class q> void sample<q>::sum() { q value; value=value1+value2; cout<<"The added value is"<<value<<endl; } }; void main() { clrscr(); sample<int>obj1; sample<float>obj2;
cout<<"Enter the integer value"<<endl; obj1.get(); obj1.sum(); cout<<"Enter the floating value"<<endl; obj2.get(); obj2.sum(); getch(); }
EXERCISES
1. Explain generic functions with an example? 2. Explain generic class with an example?
Mult mai mult decât documente.
Descoperiți tot ce are Scribd de oferit, inclusiv cărți și cărți audio de la editori majori.
Anulați oricând.