Operator overloading
#include <iostream>
using namespace std;
class fraction
{
private:
int num;
int dnum;
public:
fraction()
{
num = 0;
dnum = 1;
}
void getdata()
{
cout << endl
<< "Enter the numerator: ";
cin >> num;
cout << "\nEnter the denominator: ";
cin >> dnum;
}
void putdata()
{
cout << endl
<< num << endl;
cout << "___";
cout << endl
<< dnum;
}
fraction operator++();
fraction operator++(int);
fraction operator--();
fraction operator-();
};
fraction fraction::operator++()
{
fraction x;
num = num + dnum;
x.dnum = dnum;
x.num = num;
return (x);
}
fraction fraction ::operator++(int) // this is postfix incrementation
{
fraction x;
x.dnum = dnum;
x.num = num;
num = num + dnum;
return (x);
}
fraction fraction::operator--()
{
fraction x;
num = num - dnum;
x.dnum = dnum;
x.num = num;
return (x);
}
fraction fraction::operator-()
{
fraction x;
num = -num;
x.dnum = dnum;
x.num = num;
return (x);
}
int main()
{
fraction f1, f2;
// f1.getdata();
// f2 = ++f1;
// cout << endl
// << "f2: " << endl;
// f2.putdata();
// cout << endl
// << endl
// << "f1: " << endl;
// f1.putdata();
// f1.getdata();
// f2 = --f1;
// cout << endl
// << "f2: " << endl;
// f2.putdata();
// cout << endl
// << endl
// << "f1: " << endl;
// f1.putdata();
f1.getdata();
f1 = -f1;
f1.putdata();
return 0;
}
Comments
Post a Comment