In this article we are going to design a program with a class that overloads almost all the arithmetic operators (+, -, +=, -=, /, *, ++, --)
This is a program centric article, so we straightway have a look at the example program.
Since nothing new has been introduced, I leave it up to you to understand everything yourself.
// Example Program with a
// a class having almost
// all the arithmetic
// operators overloaded
#include
class myclass
{
int a;
int b;
public:
myclass(){}
myclass(int,int);
void show();
myclass operator+(myclass);
myclass operator-(myclass);
// prefix
myclass operator++();
myclass operator--();
// postfix
myclass operator++(int);
myclass operator--(int);
myclass operator+=(myclass);
myclass operator-=(myclass);
myclass operator/(myclass);
myclass operator*(myclass);
};
myclass::myclass(int x,int y)
{
a=x;
b=y;
};
void myclass::show()
{
cout< }
myclass myclass::operator+(myclass ob)
{
myclass temp;
temp.a=a + ob.a;
temp.b=b + ob.b;
return temp;
}
myclass myclass::operator-(myclass ob)
{
myclass temp;
temp.a=a - ob.a;
temp.b=b - ob.b;
return temp;
}
myclass myclass::operator++()
{
a++;
b++;
return *this;
}
myclass myclass::operator--()
{
a--;
b--;
return *this;
}
myclass myclass::operator++(int x)
{
myclass old;
old=*this;
a++;
b++;
return old;
}
myclass myclass::operator--(int x)
{
myclass old;
old=*this;
a--;
b--;
return old;
}
myclass myclass::operator+=(myclass ob)
{
a+=ob.a;
b+=ob.b;
return *this;
}
myclass myclass::operator-=(myclass ob)
{
a-=ob.a;
b-=ob.b;
return *this;
}
myclass myclass::operator/(myclass ob)
{
myclass temp;
temp.a=a / ob.a;
temp.b=b / ob.b;
return temp;
}
myclass myclass::operator*(myclass ob)
{
myclass temp;
temp.a=a * ob.a;
temp.b=b * ob.b;
return temp;
}
void main()
{
myclass ob1(10,20);
myclass ob2(100,200);
ob1+=ob2;
ob1.show();
ob2.show();
ob1=ob1/ob2;
ob1.show();
ob1=ob1*ob2;
ob1.show();
ob2.show();
}
No comments:
Post a Comment