Program to Subtract Complex Number Using Operator Overloading
- Binary operators like addition (+) operator, subtraction-) (operator, and division(/) operator are used rather commonly.
/* C++ program to demonstrate the overloading
of binary operator by subtracting one complex number from another. */
#include <iostream.h>
#include <conio.h>
class Complex
{
private:
float real;
float imag;
public:
Complex(): real(0), imag(0){ }
void input()
{
cout<<"Enter real and imaginary parts
respectively: ";
cin>>real;
cin>>imag;
}
Complex operator - (Complex c2) /* Operator
Function */
{
Complex temp;
temp.real=real-c2.real;
temp.imag=imag-c2.imag;
return temp;
}
void output()
{
if(imag<0)
cout<<"Output Complex number: "<<real<<imag<<"i";
else
cout<<"Output Complex number: "<<real<<"+"<<imag<<"i";
}
};
int main()
{
Complex c1, c2, result;
cout<<"Enter first complex number:\n";
c1.input();
cout<<"Enter second complex number:\n";
c2.input();
/* In case of operator overloading of binary
operators in C++ programming, the object on right hand side of operator is
always assumed as argument by compiler. */
result=c1-c2; /* c2 is furnised as an argument to the
operator function. */
result.output();
return 0;
}
- In this program, three objects of type Complex is created and user is asked to enter the real and imaginary parts for two complex numbers which is stored in objects c1 and c2. Then statement result=c1-c2 is executed.
- This statement invokes the operator function Complex operator - (Complex c2). When result=c1-c2 is executed, c2 is passed as argument to the operator function.
- In case of operator overloading of binary operators in C++ programming, the object on right hand side of operator is always assumed as argument by compiler.
- Then, this function returns the resultant complex number(object) to main() function and then, it is displayed.
- Though, this tutorial contains the overloading of - operators, binary operators in C++ programming like: +, *, <, += etc. can be overloaded in similar manner.
#include <iostream.h>
#include <conio.h>
class Box {
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
public:
double getVolume(void) {
return length * breadth * height;
}
void setLength( double len ) {
length = len;
}
void setBreadth( double bre ) {
breadth = bre;
}
void setHeight( double hei ) {
height = hei;
}
// Overload + operator to add two Box objects.
Box operator+(const Box& b) {
Box box;
box.length = this->length + b.length;
box.breadth = this->breadth + b.breadth;
box.height = this->height + b.height;
return box;
}
};
// Main function for the program
int main() {
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Box Box3; // Declare Box3 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
Box1.setLength(6.0);
Box1.setBreadth(7.0);
Box1.setHeight(5.0);
// box 2 specification
Box2.setLength(12.0);
Box2.setBreadth(13.0);
Box2.setHeight(10.0);
// volume of box 1
volume = Box1.getVolume();
cout << "Volume of Box1 : " << volume <<endl;
// volume of box 2
volume = Box2.getVolume();
cout << "Volume of Box2 : " << volume <<endl;
// Add two object as follows:
Box3 = Box1 + Box2;
// volume of box 3
volume = Box3.getVolume();
cout << "Volume of Box3 : " << volume <<endl;
return 0;
}
Expected Output:-
Volume of Box1 : 210
Volume of Box2 : 1560
Volume of Box3 : 5400
Tags:
Binary Operator Overloading
c++ programming
manjeet singh kuthar
manncsemanjeet
mskuthar
www.mskuthar.blogspot.com