rendered paste body/* Deklaracja klasy i funkcji */class fraction{ private: int gcd(int one, int two); long int mNumerator; long int mDenominator; public: fraction(int numenator, int denominator); fraction(const fraction &model); fraction& reduce(); //friend ostream& operator<<(ostream& screen, const fraction& rhs); /* operatory */ fraction& operator*=(const fraction &rhs); fraction& operator/=(const fraction &rhs); fraction& operator+=(const fraction &rhs); fraction& operator-=(const fraction &rhs); fraction& operator=(const fraction &rhs); fraction operator+(const fraction &rhs); fraction operator-(const fraction &rhs); fraction operator*(const fraction &rhs); fraction operator/(const fraction &rhs); fraction& operator--(void); fraction& operator++(void);};/* globalne *//*ostream& operator<<(ostream& screen, const fraction& rhs){ screen<<rhs.mNumerator<<"/"<<rhs.mDenominator; return screen;}*//* konstruktory */fraction::fraction(int numenator=0, int denominator=1):mNumerator(numenator), mDenominator(denominator){}/***/fraction::fraction(const fraction &model):mNumerator(model.mNumerator), mDenominator(model.mDenominator){};/* funkcje */int fraction::gcd(int one, int two){ int result; for(; ;){ if (two!=0){ result = one % two; one = two; two = result; } else{ result = one; break; } } return result;}/***/fraction& fraction::reduce(){ int divider=gcd(mNumerator, mDenominator); mNumerator/=divider; mDenominator/=divider; return (*this);}/* operatory */fraction& fraction::operator*=(const fraction &rhs){ mNumerator *= rhs.mNumerator; mDenominator *= rhs.mDenominator; return (*this);}fraction& fraction::operator/=(const fraction &rhs){ mNumerator *= rhs.mDenominator; mDenominator *= rhs.mNumerator; return (*this);}fraction& fraction::operator+=(const fraction &rhs){ if(mDenominator==rhs.mDenominator) mNumerator+=rhs.mNumerator; else{ mNumerator=(mNumerator*rhs.mDenominator)+(rhs.mNumerator*mDenominator); mDenominator*=rhs.mDenominator; } return (*this);}fraction& fraction::operator-=(const fraction &rhs){ if(mDenominator==rhs.mDenominator) mNumerator-=rhs.mNumerator; else{ mNumerator=(mNumerator*rhs.mDenominator)-(rhs.mNumerator*mDenominator); mDenominator*=rhs.mDenominator; } return (*this);}fraction& fraction::operator=(const fraction &rhs){ mNumerator=rhs.mNumerator; mDenominator=rhs.mDenominator; return (*this);}fraction fraction::operator+(const fraction &rhs){ fraction result(*this); if(result.mDenominator==rhs.mDenominator) result.mNumerator+=rhs.mNumerator; else{ result.mNumerator=(mNumerator*rhs.mDenominator)+(rhs.mNumerator*mDenominator); result.mDenominator*=rhs.mDenominator; } return result;}fraction fraction::operator-(const fraction &rhs){ fraction result(*this); if(result.mDenominator==rhs.mDenominator) result.mNumerator-=rhs.mNumerator; else{ result.mNumerator=(mNumerator*rhs.mDenominator)-(rhs.mNumerator*mDenominator); result.mDenominator*=rhs.mDenominator; } return result;}fraction fraction::operator*(const fraction &rhs){ fraction result(*this); result.mNumerator*=rhs.mNumerator; result.mDenominator*=rhs.mDenominator; return result;}fraction fraction::operator/(const fraction &rhs){ fraction result(*this); result.mNumerator*=rhs.mDenominator; result.mDenominator*=rhs.mNumerator; return result;}fraction& fraction::operator--(void){ mNumerator-=mDenominator; return (*this);}fraction& fraction::operator++(void){ mNumerator+=mDenominator; return (*this);}