Ich habe diese halb geschriebene Klasse gegeben.Mit überladenen Operatoren an Zeiten
using namespace std;
#include <iostream>
#include <iomanip>
#include "Time.h"
Time::Time()
{ hour = min = sec = 0;
}
Time::Time(int h, int m, int s)
{ setTime(h, m, s);
}
void Time::setTime(int h, int m, int s)
{ hour = (h>=0 && h<24) ? h : 0;
min = (m>=0 && m<60) ? m : 0;
sec = (s>=0 && s<60) ? s : 0;
}
Time& Time::operator+=(unsigned int n)
{ sec += n;
if (sec >= 60)
{ min += sec/60;
sec %= 60;
if (min >=60)
{ hour = (hour + min/60) % 24;
min %= 60;
}
}
return *this;
}
Time Time::operator+(unsigned int n) const
{ Time tCopy(*this);
tCopy += n;
return tCopy;
}
Time& Time::operator++() // prefix version
{ *this += 1;
return *this;
}
Time Time::operator++(int n) // postfix version
{ Time tCopy(*this);
*this += 1;
return tCopy;
}
ostream& operator<<(ostream &o, const Time &t)
{ o << setfill('0') << setw(2) << t.hour << ':' << setw(2) << t.min << ':' << setw(2) << t.sec;
return o;
}
und diese Header-Datei,
// using _TIMEX_H_ since _TIME_H_ seems to be used by some C++ systems
#ifndef _TIMEX_H_
#define _TIMEX_H_
using namespace std;
#include <iostream>
class Time
{ public:
Time();
Time(int h, int m = 0, int s = 0);
void setTime(int, int, int);
Time operator+(unsigned int) const;
Time& operator+=(unsigned int);
Time& operator++(); // postfix version
Time operator++(int); // prefix version
// new member functions that you have to implement
Time operator-(unsigned int) const;
Time& operator-=(unsigned int);
Time& operator--(); // postfix version
Time operator--(int); // prefix version
bool operator==(const Time&) const;
bool operator<(const Time&) const;
bool operator>(const Time&) const;
private:
int hour, min, sec;
friend ostream& operator<<(ostream&, const Time&);
// new friend functions that you have to implement
friend bool operator<=(const Time&, const Time&);
friend bool operator>=(const Time&, const Time&);
friend bool operator!=(const Time&, const Time&);
friend unsigned int operator-(const Time&, const Time&);
};
#endif
Ich glaube, ich kann die anderen Bedienfunktionen und die Freund-Funktionen implementieren, aber ich habe Probleme, eine main-Methode zu schreiben, wie das funktioniert zur Zeit zu testen, ich Ich habe gerade erst begonnen, C++ zu lernen, und ich habe wirklich Probleme damit, also entschuldige mich dafür, dass ich keine Ahnung habe, wie ich das schreiben soll. Danke im Voraus.
Es ist schwer zu verstehen, warum diese Funktionen (außer '' '' ') Freunde wären, da sie vollständig über die öffentliche Schnittstelle implementiert werden können. – molbdnilo
Ich denke, es ist so, dass wir zeigen können, dass wir beide Arten von Funktionen implementieren können ... – Chaz