#include
#include
class Time {
private:
int hours;
int minutes;
int seconds;
void normalize() {
minutes += seconds / 60;
seconds %= 60;
hours += minutes / 60;
minutes %= 60;
hours %= 24;
}
public:
// Конструктор
Time(int h = 0, int m = 0, int s = 0) : hours(h), minutes(m), seconds(s) {
normalize();
}
// Деструктор
~Time() {
std::cout << "Время удалено" << std::endl;
}
// Метод вывода времени и составляющей суток
void display() const {
std::cout << hours << ":" << minutes << ":" << seconds << " - ";
if (hours < 6) std::cout << "ночь";
else if (hours < 12) std::cout << "утро";
else if (hours < 18) std::cout << "день";
else std::cout << "вечер";
std::cout << std::endl;
}
// Перегрузка оператора сложения
Time operator+(const Time& other) const {
return Time(hours + other.hours, minutes + other.minutes, seconds + other.seconds);
}
// Перегрузка оператора вычитания
Time operator-(const Time& other) const {
int total_seconds = (hours * 3600 + minutes * 60 + seconds) -
(other.hours * 3600 + other.minutes * 60 + other.seconds);
if (total_seconds < 0) total_seconds += 24 * 3600;
return Time(total_seconds / 3600, (total_seconds % 3600) / 60, total_seconds % 60);
}
// Перегрузка оператора меньше
bool operator<(const Time& other) const {
if (hours != other.hours) return hours < other.hours;
if (minutes != other.minutes) return minutes < other.minutes;
return seconds < other.seconds;
}
// Перегрузка оператора больше
bool operator>(const Time& other) const {
return other < *this;
}
};
int main() {
Time t1(10, 30, 0);
Time t2(8, 45, 30);
Time t3(2, 15, 45);
Time t4(15, 0, 0);
std::cout << "t1: "; t1.display();
std::cout << "t2: "; t2.display();
std::cout << "t3: "; t3.display();
std::cout << "t4: "; t4.display();
Time T1 = t1 + t3;
Time T2 = t4 - t2;
std::cout << "T1 (t1 + t3): "; T1.display();
std::cout << "T2 (t4 - t2): "; T2.display();
if (T1 < T2) {
std::cout << "T1 меньше T2" << std::endl;
} else if (T1 > T2) {
std::cout << "T1 больше T2" << std::endl;
} else {
std::cout << "T1 равно T2" << std::endl;
}
return 0;
}
программированием в С++. Изучение общих понятий о классах - поля класса,
методы класса (конструктор, деструктор и другие методы). Изучение возможности перегрузки операторов в С++.
Помогите пожалуйста если не трудно,заранее спасибо