EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Function Overloading in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Function Overloading in C++

Function-Overloading-in-C++

Introduction to Function Overloading in C++

C++ programming has amazing features and one of the most important features is function overloading. It means a code having more than one function with the same name but with the different argument lists. The argument list means the sequence of the arguments and data types of arguments. Function overloading is used to perform similar operations. It is used to enhance the readability of the code. Redefined the function because there is no point in creating two different functions for performing the same work again and again.

Syntax

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

void add(int a, int b);
void add(float a, float b);

Both are the same function but arguments are different. So in case you want to perform addition on different data types using the same function then function overloading feature can be used in programming with C++.

Here is the C++ code to demonstrate function overloading in C++ programming:

Code:

#include <iostream>
using namespace std;
void print(int x) {
cout << " Here is the integer " << x << endl;
}
void print(double  y) {
cout << " Here is the float " << y << endl;
}
void print(char const *v) {
cout << " Here is the character* " << v << endl;
}
int main() {
print(20);
print(20.30);
print("three");
return 0;
}

Function Overloading in C++ -1

Different Ways to Overload  Function in C++

There are several ways to overload a function in the C++ programming language. Let’s see how can we do that:

1. Function Overloading

Use to increase code readability in programming. It can be defined as overloading 2 or more functions with the same name but different parameters are known as Function overloading.

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,899 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Syntax:

DataType  Functionname (parameter list)
{
Function body
}

Example #1

Here is the C++ code to demonstrate function overloading by changing the number of arguments in C++ programming:

Code:

#include <iostream>
using namespace std;
class Calculate {
public:
static int addition(int a,int b){
return a + b;
}
static int addition(int a, int b, int c)
{
return a + b + c;
}
};
int main(void) {
//    Declaration class object to call function
Calculate S;
cout<<S.addition(50, 50)<<endl;
cout<<S.addition(25, 26, 27);
return 0;
}

Function Overloading in C++ -2

Example #2

Here is the C++ code to demonstrate function overloading by having different types of arguments in C++ programming:

Code:

#include <iostream>
using namespace std;
class Calculate {
public:
int addition(int a,int b){
return a + b;
}
float addition(float a, float b, float c)
{
return a + b + c;
}
};
int main(void) {
//    Declaration class object to call function
Calculate S;
cout<<S.addition(50, 50)<<endl;
cout<<S.addition(25.20, 26.30, 27.60);
return 0;
}

Function Overloading in C++ -3

2. Operator Overloading

There are several built-in operators in the C++ programming language. A coder can use these operators to overload or redefine these built-in operators. It’s a compile-time polymorphism in which an overloaded operator is used to performing tasks on user-defined data types. Almost many operators can be overloaded in C++ programming language.

 Syntax:

ReturnType Classname :: operator OperatorSymbol (parameter list)
{
Function body
}

Example #1

Here is the C++ code to demonstrate Operator overloading in C++ programming:

Code:

#include <iostream>
using namespace std;
class Demo
{
private:
int count;
public:
Demo(): count(5){}
void operator ++()
{
count = count+1;
}
void DisplayCount() { cout<<"The Count is : "<<count; }
};
int main()
{
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
}

Operator Overloading

Example #2

Let’s see How function overloading actually works? in programming through C++ coding examples:

Code:

#include <iostream>
using namespace std;
void show(int);
void show(float);
void show(int, float);
int main() {
int x = 10;
float y = 255.5;
show(x);
show(y);
show(x, y);
return 0;
}
void show(int variable) {
cout << "The Integer number is : " << variable << endl;
}
void show(float variable) {
cout << "The Float number is: " << variable << endl;
}
void show(int variable1, float variable2) {
cout << "The Integer number is: " << variable1;
cout << " And The Float number is:" << variable2;
}

Operator Overloading

Code Explanation:

In the above code, we have created a function to show the output of different data types but if you notice functions name is same and arguments are different. Then we initialized a variable called x and assigned it a value and some value assigned to float variable y also. After assigning values to x and y variables we called the function shown to display input value on the output screen.

As you can see the function names but argument is different in all three cases. First, we called the function only show integer variable after that we called show function to display output only for float variable. Finally, we called the show function which has both integer and float variables to show output on the display screen as output.

This is how actually function overloading feature works in the C++ programming language. Depending on different data types the same function can be used to perform a similar set of operations.

Example #3

Here is the C++ code to demonstrate Function overloading in C++ programming:

Code:

#include <iostream>
using namespace std;
class X
{   int x;
public:
X(){}
X(int j)
{
x=j;
}
void operator+(X);
void display();
};
void X :: operator+(X a)
{
int n = x+a.x;
cout<<"The addition of two objects is : "<<n;
}
int main()
{
X a1(505);
X a2(409);
a1+a2;
return 0;
}

Operator Overloading

Code Explanation:

In the above code, we created a class X and created an integer variable x and then declared two constructors so that we don’t have to create objects for calling the function as constructor automatically initializes a newly created class object just after a memory is allocated. Two functions are created operator and display to show the addition of two objects using function overloading concepts in our code.

Conclusion

In Conclusion, function overloading feature in C++ can be used in multiple ways to increase code readability. It helps in saving memory space as well as compilation time while programming with the C++ language. Compile-time polymorphism concept is also introduced through operator overloading concepts where almost every operator can be overloaded.

Recommended Articles

This is a guide to the Function Overloading in C++. Here we discuss the various ways to overload function in C++ along with different examples and code implementation. You may also look at the following article to learn more –

  1. Overloading and Overriding in C++
  2. Operator Overloading in Python
  3. Operator Precedence in C++
  4. Nested Loop in C++

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

1 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More