#include "razlomak.hpp" int Razlomak::vratiBrojilac() const { return _brojilac; } int Razlomak::vratiImenilac() const { return _imenilac; } void Razlomak::postaviBrojilac( int x) { _brojilac = x; } void Razlomak::postaviImenilac(int x) { _imenilac = x; } void Razlomak::pisi(ostream &izlaz) const { izlaz << _brojilac << "/" << _imenilac; } void Razlomak::citaj(istream &ulaz) { ulaz >> _brojilac; char c; ulaz >> c; if (c != '/') throw "Greska pri ucitavanju razlomka"; ulaz >> _imenilac; } ostream& operator<< (ostream &izlaz, const Razlomak &r) { r.pisi(izlaz); return izlaz; } istream& operator >> (istream &ulaz, Razlomak &r) { r.citaj(ulaz); return ulaz; } Razlomak Razlomak::operator+(const Razlomak &p) const { Razlomak zbir(this->vratiBrojilac() * p.vratiImenilac() + this->vratiImenilac() * p.vratiBrojilac(), this->vratiImenilac() * p.vratiImenilac()); return zbir; } Razlomak Razlomak::operator-(const Razlomak &p) const { Razlomak zbir(this->vratiBrojilac() * p.vratiImenilac() - this->vratiImenilac() * p.vratiBrojilac(), this->vratiImenilac() * p.vratiImenilac()); return zbir; } //Razlomak::operator double() const { // return (double)_brojilac / _imenilac; //} Razlomak Razlomak::operator ~() const { return Razlomak(_imenilac, _brojilac); } Razlomak Razlomak::operator -() const { return Razlomak(-_brojilac, _imenilac); } bool Razlomak::operator <(const Razlomak& r) const { return _brojilac * r._imenilac < _imenilac * r._brojilac; } bool Razlomak::operator ==(const Razlomak& r) const { return _brojilac * r._imenilac == _imenilac * r._brojilac; } bool Razlomak::operator >(const Razlomak& r) const { return ! ((*this) < r) && !((*this) == r); } Razlomak Razlomak::operator++() { _brojilac += _imenilac; return *this; } Razlomak Razlomak::operator++(int) { Razlomak tmp(*this); _brojilac += _imenilac; return tmp; }