Klasa TCzas operator << nie działa z metodą ustaw
Ostatnio zmodyfikowano 2012-12-16 20:23
alek44 Temat założony przez niniejszego użytkownika |
Klasa TCzas operator << nie działa z metodą ustaw » 2012-12-16 19:31:43 Witam mam problem z programem jeżeli sobie na rzecz obiektu wywołam metodę ustaw to działa a jeżeli chce wczytać obiekt " godzina" np 25 :00 to powinno mi zamienić na 01:00 tak jak wcześniej. o to kod: #include<iostream> #include<fstream> using namespace std;
class TCzas { private: int g; int m; int * Tab; int r; public: TCzas( int, int, int ); friend ostream & operator <<( ostream &, TCzas & C ); friend istream & operator >>( istream &, TCzas & C ); void ustaw( int, int ); TCzas operator +( const TCzas & C ) const; TCzas operator +( const int & ) const; }; TCzas::TCzas( int godz = 0, int min = 0, int r = 0 ) { ustaw( g, m ); Tab = new int[ r ]; } void TCzas::ustaw( int dg, int dm ) { g = dg % 24; int rob; rob = dm / 60; m = dm % 60; if( m < 0 ) { m = 60 + m; rob = rob - 1; } g =( dg + rob ) % 24; if( g < 0 ) { g = g + 24; } }
ostream & operator <<( ostream & wyj, TCzas & c ) { if( c.g < 10 ) wyj << 0; wyj << c.g << ":"; if( c.m < 10 ) wyj << 0; wyj << c.m; return wyj; } istream & operator >>( istream & wczy, TCzas & c ) { wczy >> c.g; wczy >> c.m; return wczy; } TCzas TCzas::operator +( const TCzas & c ) const { return TCzas( g + c.g, m + c.m ); }
TCzas TCzas::operator +( const int & min ) const { return TCzas( g, m + min ); }
int main() { TCzas godzina; cin >> godzina; cout << godzina; system( "pause" ); return 0; } |
|
DejaVu |
» 2012-12-16 19:39:18 Po wczytaniu wartości wywołaj metodę ustaw wewnątrz przeciążonych operatorów. Obecnie nie działa bo po prostu wczytujesz liczbę i nie poddajesz jej żadnej obróbce. |
|
alek44 Temat założony przez niniejszego użytkownika |
» 2012-12-16 20:23:28 no tak .. Dzięki wielkie za pomoc :) |
|
« 1 » |