×

Binary Operator Overloading in C++

The Binary Operator Overloading in the C++ programming language will be covered in this part. An operator which comprises two operands to execute a mathematical operation is termed the Binary Operator Overloading. A single operator may carry out a variety of capabilities using two operands provided by the programmer or user in this polymorphic compile approach. There are various binary operators like +, -, *, /, etc., that may directly alter or overload the object of a class.

As an illustration, let's say the binary ( + ) operator is overloaded and we have the digits 5 and 6. The result of the binary ( + ) operator's addition of the digits 5 and 6 is 11. Additionally, we may utilize the binary operator for a variety of computations by performing subtraction, multiplication, and division operations.

return_type :: operator binary_operator_symbol (arg)  //syntaxn
{  
// function definition  
}

How to Use a Binary Overload to Calculate the Sum of Two Complex Numbers

  • Start the program with step one.
  • Declare the class in step two.
  • Declare the variables and their member functions in step three.
  • Utilize the user-defined inp ( ) function in step 4 to take two integers.
  • Sixth step: Define the binary (-) operator to subtract two values in a similar manner.
  • To show the entered numbers, use the print () method.
  • Declare the class objects x1, y1, sum, and sub in step eight.
  • Use the x1 and y1 objects to run the print () method.
  • Next, use the "+" and "-" operators to add and subtract the objects to obtain the object sum and sub result.
  • Finally, use the x1, y1, sum, and sub to call the print () and print2 () functions.
  • Showcase the complicated numbers' addition and subtraction.
  • Put an end to the program.

Example 1: A program that adds and subtracts two complex integers using the (+) and (-) operators in binary.

/* use binary (+) operator to add two complex numbers. */  
#include < iostream >
#include < stdlib >
#include < stdio >
#include < bits/stdc++.h >
using namespace std ;  
class Complex_num  
{  
    // declare data member or variables  
    int x , y ;  
    public:  
        // create a member function to take input  
        void inp ( )  
        {  
            cout << " Input two complex number: " << endl ;  
            cin >> x >> y ;  
        }         
        // use binary '+' operator to overload  
        Complex_num operator + ( Complex_num obj )  
        {  
            // create an object  
            Complex_num A ;  
            // assign values to object  
            A.x = x + obj.x ;  
            A.y = y + obj.y ;  
            return ( A ) ;  
        }         
        // overload the binary ( - ) operator  
        Complex_num operator - ( Complex_num obj )  
        {  
            // create an object  
            Complex_num A ;  
            // assign values to object  
            A.x = x - obj.x ;  
            A.y = y - obj.y ;  
            return ( A ) ;  
        }         
        // display the result of addition  
        void print ( )  
        {  
            cout << x << " + " << y << "i" << "\n" ;  
        }  
          
        // display the result of subtraction  
        void print2 ( )  
        {  
            cout << x << " - " << y << "i" << "\n" ;  
        }  
} ;  
int main ( )  
{  
Complex_num x1 , y1 , sum , sub ; // here we created object of class Addition i.e x1 and y1   
    // accepting the values  
    x1.inp ( ) ;  
    y1.inp ( ) ;     
    // add the objects  
    sum = x1 + y1 ;  
    sub = x1 - y1 ; // subtract the complex number     
    // display user entered values  
    cout << "\n entered values are: \n" ;  
    cout << " \t" ;  
    x1.print ( ) ;  
    cout << " \t" ;  
    y1.print ( ) ;   
    cout << "\n The addition of two complex ( real and imaginary ) numbers: " ;  
    sum.print ( ) ; // call print function to display the result of addition     
    cout << "\n The subtraction of two complex ( real and imaginary ) numbers: " ;  
    sub.print2 ( ) ; // call print2 function to display the result of subtraction  
    return 0 ;  
}  

OUTPUT:

Input two complex numbers:
5
7
Input two complex numbers:
3
5
entered values are:
	5 + 7 i
	3 + 5 i
The addition of two complex ( real and imaginary ) numbers: 8 + 12 i
The subtraction of two complex ( real and imaginary ) numbers: 2 - 2 i 
......................................................................
Process executed in 2.22 seconds
Press any key to continue.

Explanation

In the program above, we accept two values from the user and then overload the "+" and "-" operators to add and subtract two complex numbers in a class using the binary operator.

Example 2: Overloading the binary operator in a program to add two values.

/* use binary ( + ) operator to perform the addition of two numbers. */  
#include < iostream > 
#include < stdio >
#include < stdlib >
#include < bits/stdc++.h > 
using namespace std ;  
class Arith_num  
{  
    // declare data member or variable  
    int x , y ;  
    public:  
        // create a member function to take input  
        void input ( )  
        {  
            cout << " enter the first number: " ;  
            cin >> x ;  
        }         
        void input2 ( )  
        {  
            cout << " enter the second number: " ;  
            cin >> y ;  
        }     
        // overloading the binary ' + ' operator to add number  
        Arith_num operator + ( Arith_num & ob )  
        {  
            // create an object  
            Arith_num A ;  
            // assign values to object  
            A.x = x + ob.x ;  
            return ( A ) ;  
        }         
        // display the result of binary + operator  
        void print ( )  
        {  
            cout << "The sum of two numbers is: " << x ;  
        }         
} ;  
int main ( )  
{  
   Arith_num x1 , y1 , res ; // here we create object of the class Arith_num i.e x1 and y1   
    // accepting the values  
    x1.input ( ) ;  
    y1.input ( ) ;   
    // assign result of x1 and x2 to res  
    res = x1 + y1 ;    
    // call the print ( ) function to display the results  
    res.print ( ) ;      
    return 0 ;     
}  

OUTPUT:

enter the first number: 5
enter the second number: 6
The sum of two numbers is: 11 
.............................
Process executed in 2.11 seconds
Press any key to continue.

Explanation

In the program above, we take the user's input of two integers - 5 and 6 - and overload the binary plus (+) operator to do the addition, which yields the result that two numbers, added together equal 11.

Example 3: A program that overloads numerous binary operators to produce an arithmetic operation:

/* use binary operator to perform the arithmetic operations in C++. */  
#include < iostream >  
#include < bits/stdc++.h >
#include < stdlib >
#include < stdio >
using namespace std ;  
class Arith_num  
{  
    // declare data member or variable  
    int num ;  
    public:  
        // create a member function to take input  
        void input ( )  
        {  
            num = 20 ; //define value to num variable  
        }  
        // use binary ' + ' operator to add number  
        Arith_num operator + ( Arith_num & ob )  
        {  
            // create an object  
            Arith_num A ;  
            // assign values to object  
            A.num = num + ob.num ;  
            return ( A ) ;   
        }  
        // overload the binary ( - ) operator  
        Arith_num operator - ( Arith_num & ob )  
        {  
            // create an object  
            Arith_num A ;  
            // assign values to object  
            A.num = num - ob.num ;  
            return ( A ) ;  
        }     
        // overload the binary ( * ) operator  
        Arith_num operator * ( Arith_num & ob )  
        {  
            // create an object  
            Arith_num A ;  
            // assign values to object  
            A.num = num * ob.num ;  
            return ( A ) ;  
        }         
        // overload the binary ( / ) operator  
        Arith_num operator / ( Arith_num & ob )  
        {  
            // create an object  
            Arith_num A ;  
            // assign values to object  
            A.num = num / ob.num ;  
            return ( A ) ;  
        }         
        // display the result of arithmetic operators  
        void print ( )  
        {  
            cout << num ;  
        }         
} ;  
int main ( )  
{  
    Arith_num x1 , y1 , res ; // here we created object of class Addition i.e x1 and y1      
    // accepting the values  
    x1.input ( ) ;  
    y1.input ( ) ;   
    // assign result of x1 and x2 to res  
    res = x1 + y1 ;  
    cout << " Addition : " ;  
    res.print ( ) ;      
    // assign the results of subtraction to res  
    res = x1 - y1 ; // subtract the complex number  
    cout << " \n \n Subtraction : " ;  
    res.print ( ) ;      
    // assign the multiplication result to res  
    res = x1 * y1 ;  
    cout << " \n \n Multiplication : " ;  
    res.print ( ) ;      
    // assign the division results to res  
    res = x1 / y1 ;  
    cout << " \n \n Division : " ;  
    res.print ( ) ;  
    return 0 ;     
}  

OUTPUT:

Addition : 40
Subtraction : 0
Multiplication : 400
Division : 1  
....................
Process execute din 1.22 seconds
Press any key to continue.

Explanation:

The binary plus ( + ), minus ( - ), multiplication ( * ), and division ( / ) operators are overloaded in the program above to execute the different arithmetic operations in the Arith_num class. We declare that the value of variable num is 20, and after that, we print out the number as 20.


Related Topics

Is it fine to write void main() or main() in C/C++?

In C programming language: The default function return type in the C programming language is "int," which implies that main() will always return an integer value. In C, the void main()...

3 minutes read.

Hello World Program in C++

The steps for “Hello World” C++ program are as follows: Write a C++ code given below in an editor. Save the file with .cpp Compile the code using C++ compiler or using online...

3 minutes read.

How to initialize a dynamic array in C++

Regular arrays or static arrays have a predetermined size or fixed size. Change in the size of regular arrays is not possible. The memory size for static arrays determines at compile...

4 minutes read.

How to declare a 2D array dynamically in C++

In this article, we will learn how to declare the dynamic array in C++. We also learn the initialization of a 2D array using a pointer in C++. Here, we...

3 minutes read.

C++ Program to find the largest number formed from an array

Given an array, write a program to find the largest number that will be formed from the elements of the array. Arrangement should be done in such a way that...

4 minutes read.

Floating Point Operations and Associativity in C, C++ and Java

In this tutorial, we are going to compare Floating-point operations and the concept of associativity. Before we apply the concept of associativity in the floating-point operations in all three programming...

3 minutes read.

Template Specialization in C++

Template is a feature of C++. With the help of a template, we can write the code only once and use that code multiple times. For example, there is a...

4 minutes read.

C++ operator

In this article, we will discuss about the operators in C++ with their types and examples. An operator is specially a symbol that tells compiler to perform specific manipulation. C++ contains...

5 minutes read.

Singleton Design Pattern in C++

Singleton is similar to the global variable. Singleton helps to have only one object of its kind and provides only single access. One of the key features of the singleton...

2 minutes read.

fread() Function in C++ Programming

C++ language is used to make high-performance applications that can work efficiently, and it is one of the world's most popular languages. It is an object-oriented and high-level programming language;...

3 minutes read.

C++ Object Class

C++ Object Class Overview: C++ is a high-level programming language and an object-oriented programming language. An object-oriented language always has some properties of classes and objects. In this article, we...

4 minutes read.

Advanced C++ with Boost Library

The goal of the Boost Libraries is to be widely applicable and used in a variety of applications. For instance, they can in handy when working with huge numbers whose...

4 minutes read.

C++ Program to find the element that occurs once

Write a program to find the element in the array that occurs once. Given that all the numbers in the array are present two times and the array is sorted,...

7 minutes read.

Snake Code in C++

Snake is a popular game that can be played on almost any device and runs on any operating system. In this game, snakes can move in any direction, including left,...

4 minutes read.

Diamond Pattern Using Do-While loop in C++

What is Do-While Loop? An iterative loop that checks the condition at the end.The Do-While loop can be used whenever a test condition is specific, as the control enters the loop...

5 minutes read.

LCM Program in C++

What is LCM? LCM is an acronym for "least common multiple". It is used to discover the lowest positive integer divisible by all integers (whose LCM is calculated). For instance, the...

4 minutes read.

How to create a stack in C++

A stack is a data structure, which is of linear type. A specific order has to be followed while inserting and deleting the elements from the stack. Generally, stack follows...

5 minutes read.

Stringstream in C++ and its applications

In this tutorial, we will explore what the stringstream in C++ is. We will also learn its application. What is stringstream? With the aid of a stringstream, user can read from a...

2 minutes read.

Single Handling in C++

Introduction: Single handling in C++ refers to a technique for processing multiple events or requests with a single function or handler rather than creating separate functions for each task. This allows...

5 minutes read.

C++ Scope of Variables

In this tutorial, we will explore about the scope of variables in c++ programming language. And also, how it works in a program. What is Scope? The range of applications for something...

4 minutes read.