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.