The document discusses C++ templates which allow defining generic classes and functions. Templates can be function templates or class templates. Function templates define a set of operations that can be applied to different data types using a placeholder type. Class templates define a generic class that can work with different data types.
The document discusses C++ templates which allow defining generic classes and functions. Templates can be function templates or class templates. Function templates define a set of operations that can be applied to different data types using a placeholder type. Class templates define a generic class that can work with different data types.
C++. • It allows to define the generic classes and generic functions and thus provides support for generic programming. • Generic programming is a technique where generic types are used as parameters in algorithms so that they can work for a variety of data types. C++ Templates • Templates can be represented in two ways: • Function templates • Class templates Function Templates • It is possible to define a template for a function. • For example, if we have an add() function, we can create versions of the add function for adding the int, float or double type values. • Generic functions use the concept of a function template. Generic functions define a set of operations that can be applied to the various types of data. • The type of the data that the function will operate on depends on the type of the data passed as a parameter. • For example, Quick sorting algorithm is implemented using a generic function, it can be implemented to an array of integers or array of floats. • A Generic function is created by using the keyword template. The template defines what function will do. Syntax of Function Template
• template < class Ttype> ret_type func_name(
parameter_list) • { • // body of function. • } Where Ttype: It is a placeholder name for a data type used by the function. It is used within the function definition. It is only a placeholder that the compiler will automatically replace this placeholder with the actual data type. class: A class keyword is used to specify a generic type in a template declaration. Example #include <iostream> using namespace std; template<class T> T add(T &a,T &b) { T result = a+b; return result; } int main() { int i =2; int j =3; float m = 2.3; float n = 1.2; cout<<"Addition of i and j is :"<<add(i,j); cout<<'\n'; cout<<"Addition of m and n is :"<<add(m,n); return 0; } Function Templates with Multiple Parameters Syntax • template<class T1, class T2,.....> • return_type function_name (arguments of typ e T1, T2....) • { • // body of function. • } Example • #include <iostream> • using namespace std; • template<class X,class Y> void fun(X a,Y b) • { • std::cout << "Value of a is : " <<a<< std::endl; • std::cout << "Value of b is : " <<b<< std::endl; • } • • int main() • { • fun(15,12.3); • • return 0; • } Member function templates • Member function templates are function templates that are members of a class or class template. • Member functions can be function templates in several contexts. • All functions of class templates are generic but aren't referred to as member templates or member function templates