#include <iostream>
using namespace std;
class Decimal{
private:
int numeration, denomination;
public:
//Decimal();
//Decimal(int a);
Decimal(int a,int b);
/*
Decimal(const Decimal &d);
void set_numerator(int a);
void set_denominator(int a);
inline int get_numerator();
inline int get_denominator();
void simplify();
Decimal operator+(const Decimal &d);
Decimal operator+(int a);
*/
Decimal operator+=(const Decimal &d);
/*Decimal operator+=(int a);
Decimal operator-(const Decimal &d);
Decimal operator-(int a);*/
Decimal operator-=(const Decimal &d);
/*
Decimal operator-=(int a);
Decimal operator-();
Decimal operator*(const Decimal &d);
Decimal operator*(int a);
Decimal operator/(const Decimal &d);
Decimal operator/(int a);
bool operator ==(const Decimal &d);
bool operator >(const Decimal &d);
bool operator <(const Decimal &d);
bool operator >=(const Decimal &d);
bool operator <=(const Decimal &d);
bool operator !=(const Decimal &d);
bool operator =(const Decimal &d);
operator float();
operator double();*/
friend ostream& operator<< (ostream &out, const Decimal &d);
/*friend istream& operator>> (istream &in, Decimal &d);
friend Decimal operator +(int a,const Decimal &d);
friend Decimal operator +=(int a,const Decimal &d);
friend Decimal operator -(int a,const Decimal &d);
friend Decimal operator -=(int a,const Decimal &d);
friend Decimal operator *(int a,const Decimal &d);
friend Decimal operator /(int a,const Decimal &d);
*/
};
Decimal::Decimal(int a,int b){
this->numeration=a;
if(b!=0)
this->denomination=b;
else
this->denomination=1;
}
ostream& operator<< (ostream &out, const Decimal &d){
out << d.numeration << "/" << d.denomination;
return out;
}
Decimal Decimal::operator+=(const Decimal &d){
this->numeration *= d.denomination; // 3/4 += 1/5 => 3/4 + 1/5 = (3*5 + 1*4)/(4*5)
this->numeration += this->denomination * d.numeration;
this->denomination *= d.denomination;
return *this;
}
Decimal Decimal::operator-=(const Decimal &d){
this->numeration *= d.denomination; //(3*5 - 1*4)/(4*5)
this->numeration -= this->denomination * d.numeration;
this->denomination *= d.denomination;
return *this;
}
int main()
{
Decimal dc1(2, 5);
Decimal dc2(3, 9);
dc1 +=dc2;
cout << dc1;
return 0;
}