Let us start this with a question!
All of you know that we cannot have two variables of the same name, but can we have two Functions having the same name.
The answer is YES, we can have two functions of the same name by a method known as function overloading and the functions having the same name are known as overloaded functions.
So, what’s the use of Function Overloading
Function overloading is one of the most powerful features of C++ programming language. It forms the basis of polymorphism (compile-time polymorphism).
Most of the time you’ll be overloading the constructor function of a class.
How function overloading is achieved
One thing that might be coming to your mind is, how will the compiler know when to call which function, if there are more than one function of the same name.
The answer is, you have to declare functions in such a way that they differ either in terms of the number of parameters or in terms of the type of parameters they take.
What that means is, nothing special needs to be done, you just need to declare two or more functions having the same name but either having different number of parameters or having parameters of different types.
Example 1: Overloading Functions that differ in terms of NUMBER OF PARAMETERS
//Example Program in C++
#include<iostream.h>
//FUNTION PROTOTYPES
int func(int i);
int func(int i, int j);
void main(void)
{
cout<<func(10);//func(int i)is called
cout<<func(10,10);//func(int i, int j) is called
}
int func(int i)
{
return i;
}
int func(int i, int j)
{
return i+j;
}
Example 2: Overloading Functions that differ in terms of TYPE OF PARAMETERS
//Example Program in C++
#include<iostream.h>
//FUNTION PROTOTYPES
int func(int i);
double func(double i);
void main(void)
{
cout<<func(10);//func(int i)is called
cout<<func(10.201);//func(double i) is called
}
int func(int i)
{
return i;
}
double func(double i)
{
return i;
}
One more Question, is the program below, valid?
//Example Program in C++
#include<iostream.h>
//FUNTION PROTOTYPES
int func(int i);
double func(int i);
void main(void)
{
cout<<func(10);
cout<<func(10.201);
}
int func(int i)
{
return i;
}
double func(int i)
{
return i;
}
No, because you can’t overload functions if they differ only in terms of the data type they return.
I Hope this article throws some light on function overloading!
Good-Bye for now
Thanks for reading…
Do check back for updates!
Related Articles: