#include class cLuku { int a; int low; int high; public: cLuku(int ia,int il,int ih) { low=il; high=ih; set(ia); } int set(int n); int get(void) const; int lisaa(int i=1) { return set(get()+i); } }; int cLuku::set(int n) // esim n = -65, [0,59] => a = 55; yli = -2 { int ero = high-low+1; // 60 int arvo = n - low; // -65 int jj = arvo%ero; // 55 if ( jj < 0 ) jj += ero; // riippuu ohj. kielest„ voiko tulla <0 a = jj + low; // Nyt jj=55 a=55 return (arvo-jj)/ero; // -65-55=-120 => -2 } int cLuku::get(void) const { return a; } class cKello { cLuku h,m; public: cKello(int ih=0, int im=0) : h(0,0,23),m(0,0,59) { set(ih,im); } int set(int ih, int im) { return h.set(ih+m.set(im)); } int lisaa(int i) { return h.lisaa(m.lisaa(i)); } friend ostream &operator<<(ostream &os, const cKello &k) { os << k.h.get() << ":" << k.m.get(); return os; } }; int main(void) { cLuku luku(0,0,59); int yli = luku.set(-65); cout << "a= " << luku.get() << " yli " << yli << endl; cKello k(7,15); cout << k << " + 240 min = "; k.lisaa(240); cout << k << endl; return 0; }