pompy wtryskowe|cheap huarache shoes| bombas inyeccion|cheap jordans|cheap air max| cheap sneaker|wholesale jordans|cheap china jordans|cheap wholesale jordans
Menu
C++ Tutorials

C++

Function Templates



Tutorials > C++ > Function Templates

View Full Source

Introduction

Function templates allow you to create a function that can accept or return more than one data type. This is useful if you have an operation that will work with a number of data types but you do not want to have a number of different functions with the same body but different parameters and return value.

Contents of main.cpp :


#include <iostream>
#include <stdlib.h>

using namespace std;

To create a function template, you need to add the following line above your function :

    template<class T>

where T can be any identifier. Wherever you now see T, you can imagine that T can be substituted with any data type.

As you see below, you can now use T wherever you would normally use your data type. This function allows any 2 variables of the same data type to be subtracted from each other and returned as a result of the same data type.

template<class T>
T difference(T v1, T v2)
{
	return v1 - v2;
}

We can see how different data types can be used in the code below. Our examples show how both integers and floats can be passed on to this function.

int main()
{
	int idif = difference(6, 9);
	cout << idif << endl;

	float fdif = difference(5.5f, 3.0f);
	cout << fdif << endl;

	system("pause");

	return 0;
}

Congratulations. You should now know how to create basic function templates. We will return to templates in a later tutorial and explain them more in detail. Function templates allow you to save a great amount of time as you can create just one function that will accept a number of data types. This also makes your code more readable and easier to understand.

Please let me know of any comments you may have : Contact Me

Source Files : Visual Studio Dev-C++ Unix / Linux

< Tutorial 44 - Namespaces Tutorial 46 - Classes >

Back to Top


All Rights Reserved, © Zeus Communication, Multimedia & Development 2004-2005

Read the Disclaimer

Links