C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++

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.



ADVERTISEMENT
ADVERTISEMENT