Introduction to Function Overloading in C++

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:


Check out this stream