// rajoit.cpp - esimerkki bin„„risen operaation kuormituksesta #include class cRajoitettu { int arvo; int raja; public: int aseta(int aarvo) { arvo = aarvo; int yli = arvo/raja; arvo %= raja; return yli; } cRajoitettu(int aarvo, int araja) { raja = araja; if ( raja < 1 ) raja = 1; aseta(aarvo); } int Arvo() const { return arvo; } int Raja() const { return raja; } }; ostream &operator<<(ostream &os, const cRajoitettu &r) {return os << r.Arvo(); } cRajoitettu operator+(const cRajoitettu &r1, int i) { return cRajoitettu(r1.Arvo()+i,r1.Raja()); } int operator+(int i,const cRajoitettu &r2) { return i+r2.Arvo(); } int main(void) { cRajoitettu m1(55,60),m2(20,60); int i; cout << m1 << " " << m2 << "\n"; m2 = m1 + 20; cout << m1 << " " << m2 << "\n"; i = 20 + m2; cout << i << "\n"; return 0; }