Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using std::cout; using std::endl; using std::ostream;
- //CLASSE ORARIO
- class orario {
- public:
- orario();
- orario(int);
- orario(int, int);
- orario(int, int, int);
- int Ore() const;
- int Minuti() const ;
- int Secondi() const;
- //metodi const
- orario UnOraPiuTardi() const;
- void AvanzaUnOra();
- //overloading operatore somma
- orario operator+(orario);
- orario operator++(int);
- //overloading ==
- bool operator==(orario);
- //overloading >
- bool operator>(orario);
- private:
- int sec;
- };
- //COSTRUTTORI CLASSE ORARIO
- orario::orario() { sec=0; }
- orario::orario(int o){
- if(o < 0 || o > 23) sec = 0;
- else sec = o*3600;
- }
- orario::orario(int o, int m) {
- if(o < 0 || o > 23 || m < 0 || m > 59) sec = 0;
- else sec = o*3600 + m*60;
- }
- orario::orario(int o, int m, int s) {
- if(o < 0 || o > 23 || m < 0 || m > 59 || s < 0 || s > 59) sec = 0;
- else sec = o*3600 + m*60 + s;
- }
- //METODI CLASSE ORARIO
- orario orario::UnOraPiuTardi() const{
- orario aux;
- aux.sec=(sec + 3600) % 86400;
- return aux;
- }
- void orario::AvanzaUnOra(){
- sec = (sec + 3600) % 86400;
- }
- orario orario::operator+(orario o) {
- orario aux;
- aux.sec=(sec + o.sec) % 86400;
- return aux;
- }
- orario orario::operator++(int) {
- sec = (sec + 3600) % 86400;
- return *this;
- }
- bool orario::operator==(orario o) {
- if(sec == o.sec) return true;
- else return false;
- }
- bool orario::operator>(orario o) {
- if(sec > o.sec) return true;
- else return false;
- }
- //overloading operatore output
- ostream& operator<<(ostream& os, const orario& o) {
- return os <<o.Ore() <<":"<<o.Minuti()<<":"<<o.Secondi();
- }
- //CLASSE TELEFONATA
- class telefonata {
- private:
- const orario inizio, fine;
- const int numero;
- public:
- telefonata(orario, orario, int);
- telefonata();
- orario Inizio() const;
- orario Fine() const;
- int Numero() const;
- bool operator==(const telefonata&) const;
- };
- ostream& operator<<(ostream&, const telefonata);
- telefonata::telefonata(orario i, orario f, int n) : inizio(i), fine(f), numero(n) {}
- telefonata::telefonata() : numero(0) {}
- orario telefonata::Inizio() const {return inizio; }
- orario telefonata::Fine() const {return fine; }
- int telefonata::Numero() const {return numero; }
- bool telefonata::operator==(const telefonata& t) const {
- return inizio==t.inizio && fine==t.fine && numero==t.numero;
- }
- ostream& operator<<(ostream& os, const telefonata& t) {
- return os <<"INIZIO "<<t.Inizio()<<"FINE "<<t.Fine()<<"NUMERO CHIAMATO "<<t.Numero();
- }
- int main() {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement