Home »
C++ programming language
C++ function overloading
In C++, it is possible to make more than one function with same name, this concept is known as function overloading. We can use same function name for different purpose with different number and types of arguments.
In function overloading function names will be same but Types of arguments, Order of arguments, Number of arguments must be different.
The C++ compiler selects the proper function by examining the number, types and order of the arguments in the call. Function overloading is commonly used to create several functions of the same name that perform similar tasks but on different data types.
Advantages of function overloading
Following advantages to use function overloading in your program:
- Eliminating the use of different function names for the same operations.
- Helps to understand, debug and group easily.
- Easy maintainability of the code.
- Better understandability of the relationship b/w the program and the outside world.
Points to remember
Function overloading does not depend on return type of function.
Consider the following functions :
Example of function overloading
Consider the example
#include <iostream>
using namespace std;
// function declarations
int sumOfNumbers(int, int); // type-1
int sumOfNumbers(int, int, int); // type-2
int sumOfNumbers(int, float); // type-3
float sumOfNumbers(float, float); // type-4
int main() {
cout << "Type -1 : SUM IS = " << sumOfNumbers(10, 20) << endl;
cout << "Type -2 : SUM IS = " << sumOfNumbers(10, 20, 30) << endl;
cout << "Type -3 : SUM IS = " << sumOfNumbers(10, 20.0f) << endl;
cout << "Type -4 : SUM IS = " << sumOfNumbers(10.2f, 20.3f) << endl;
return 0;
}
// function definitions...
int sumOfNumbers(int x, int y) { return (x + y); }
int sumOfNumbers(int x, int y, int z) { return (x + y + z); }
int sumOfNumbers(int x, float y) { return (x + (int)y); }
float sumOfNumbers(float x, float y) { return (x + y); }
Type -1 : SUM IS = 30
Type -2 : SUM IS = 60
Type -3 : SUM IS = 30
Type -4 : SUM IS = 30.5