This tutorial explains the concept of C++ function overloading and how it is used in programs.
As we know that functions are the piece of code that can be used anywhere in the program with just calling it multiple times to reduce the complexity of the code. In POP, we can use as many functions as per need, however, the names of the function shouldn’t match. In the case of OOP, we can use a function name as many times following the condition that the number of arguments or the type of arguments must differ.
So the method of using the same function name for different functions is simply called function overloading. When an overloaded function is called from main program the function with matching arguments is invoked.
Examples
void display(); //function with no arguments
void display( int ); //function with one integer type arguments
void display( float ); //function with one floating point arguments
void display( int, float ); //function with one floating and one integer type arguments
// functionoverloading.cpp
#include <iostream>
using namespace std;
void display ( ) //function with no arguments
{
int a = 3;
cout << a << endl;
}
void display (int a ) //function with one integer argument
{
cout << a << endl;
}
void display (double a ) //function with one floating argument
{
cout << a << endl;
}
void display(int a, float b) //function with one integer and one floating arguments
{
cout<< a << " , " << b << endl;
}
int main()
{
display(); //function call with no arguments
display(5); //function call with one integer argument
display(2.3); //function call with one floating argument
display(5,4.0); //function call with one integer and one floating arguments
return 0;
} //end of program
[adsense1]
Output
3 5 2.3 5 , 4
Explanation
In above program, when we call the function with no arguments the display()
function with no arguments is invoked and the result is 3. Similarly, when we pass one integer type argument while calling the display(int a)
function is invoked. Similarly, when we pass integer and float value display(int a, float b)
function is invoked. The advantage of function overloading is that the number of names of functions is reduced.
So function overloading is achieved by varying following points: