Templates in C++
CREATED BY – MAYANK BHATT
Contents
• Templates
• Function templates
• Class templates
• Applictaions of templates
Templates
• Templates are the foundation of generic
programming, which involves writing code in a
way that is independent of any particular type.
• We can use templates to define functions as well
as classes
Function Templates
• There are several functions of considerable importance
which have to be used frequently with different data
types.
• The limitation of such functions is that they operate only
on a particular data type.
• It can be overcome by defining that function as a
function template or generic function.
• Syntax:
template <typename parameter, …..>
returntype function_name (arguments)
{
…… // body of template function
……
}
Example Program:
• #include<iostream>
• #include<conio.h>
• using namespace std;
• template <class t>
• t mymax(t a,t b)
• { return(a>b?a:b);
• }
• main()
• { int a,b;
• float c,d;
• cout<<"Enter two integers:n";
• cin>>a>>b;
• cout<<"nMax="<<max(a,b);
• cout<<"nEnter two floating point numbers:n";
• cin>>c>>d;
• cout<<"nMax="<<max(c,d);
• getch();
• }
Output:
Class Templates
• Class can also be declared to operate on different data types.
Such class are called class templates.
• A class template specifies how individual classes can be
constructed similar to normal class specification.
• These classes model a generic class which support similar
operations for different data types.
• Syntax :
template <class T1, class T2, …..>
class class_name
{
T1 data1; // data items of template type
void func1 (T1 a, T2 &b); // function of template
argument
T func2 (T2 *x, T2 *y);
}
• #include<iostream>
• #include<conio.h>
• using namespace std;
• template <class t>
• class mypair
• { private: t a,b;
• public: mypair(t first,t second)
• {a=first;
• b=second;
• }
• t getmax();
• };
• template <class t>
• t mypair<t>::getmax()
• {return(a>b?a:b);
• }
• main()
• {
• mypair<int> myints(100,275);
• mypair<float> myfloat(1.7777,1.7778);
• cout<<"max integer="<<myints.getmax();
• cout<<"nmax float="<<myfloat.getmax();
• getch();
• }
Output:
Applications of Templates
• Templates support generic programming, which
allows to develop reusable software
components such as function, class, etc.
• Supporting different data types in a single
framework.
• A template in C++ allows the construction of a
family of template functions and classes to
perform the same operation on different data
types.
• It allows a single template to deal with a generic
data type T.
Templates in c++

Templates in c++

  • 1.
    Templates in C++ CREATEDBY – MAYANK BHATT
  • 2.
    Contents • Templates • Functiontemplates • Class templates • Applictaions of templates
  • 3.
    Templates • Templates arethe foundation of generic programming, which involves writing code in a way that is independent of any particular type. • We can use templates to define functions as well as classes
  • 4.
    Function Templates • Thereare several functions of considerable importance which have to be used frequently with different data types. • The limitation of such functions is that they operate only on a particular data type. • It can be overcome by defining that function as a function template or generic function. • Syntax: template <typename parameter, …..> returntype function_name (arguments) { …… // body of template function …… }
  • 5.
    Example Program: • #include<iostream> •#include<conio.h> • using namespace std; • template <class t> • t mymax(t a,t b) • { return(a>b?a:b); • }
  • 6.
    • main() • {int a,b; • float c,d; • cout<<"Enter two integers:n"; • cin>>a>>b; • cout<<"nMax="<<max(a,b); • cout<<"nEnter two floating point numbers:n"; • cin>>c>>d; • cout<<"nMax="<<max(c,d); • getch(); • }
  • 7.
  • 8.
    Class Templates • Classcan also be declared to operate on different data types. Such class are called class templates. • A class template specifies how individual classes can be constructed similar to normal class specification. • These classes model a generic class which support similar operations for different data types. • Syntax : template <class T1, class T2, …..> class class_name { T1 data1; // data items of template type void func1 (T1 a, T2 &b); // function of template argument T func2 (T2 *x, T2 *y); }
  • 9.
    • #include<iostream> • #include<conio.h> •using namespace std; • template <class t> • class mypair • { private: t a,b; • public: mypair(t first,t second) • {a=first; • b=second; • } • t getmax(); • };
  • 10.
    • template <classt> • t mypair<t>::getmax() • {return(a>b?a:b); • } • main() • { • mypair<int> myints(100,275); • mypair<float> myfloat(1.7777,1.7778); • cout<<"max integer="<<myints.getmax(); • cout<<"nmax float="<<myfloat.getmax(); • getch(); • }
  • 11.
  • 12.
    Applications of Templates •Templates support generic programming, which allows to develop reusable software components such as function, class, etc. • Supporting different data types in a single framework. • A template in C++ allows the construction of a family of template functions and classes to perform the same operation on different data types. • It allows a single template to deal with a generic data type T.