перезагрузка операций
Создайте класс Data для работы с временными интервалами.Интервал должен быть представлен в виде двух полей :число типа int и месяц типа int. При выводе день от месяца отделяется точкой.Реализовать :
1) составление временных интервалов (учесть,что в месяце не может быть больше 30 дней)
2) сравнение часовых интервалов (==)
очень прошу помощи
#include <iostream>
class Data {
/*
Создаем 2 поля типа private, в которых будет храниться номер дня и месяца.
*/
private:
int day;
int month;
/*
Создаем функции типа public.
Функция inputDate запрашивает у пользователя день/месяц, если вводится неверное значение,
то выводится сообщение и возвращаемся с помощью метки на ввод дня/месяца.
Проверяем мы только число, если будет введено что-то кроме числа - программа упадёт.
*/
public:
void inputDate() {
d:
std::cout << "Введите день: ";
std::cin >> day;
if (day > 30 || day < 1) {
std::cout << "В месяце не может быть больше 30 дней!n";
goto d;
}
m:
std::cout << "Введите номер месяца: ";
std::cin >> month;
if (month > 12 || month < 1) {
std::cout << "Вы ввели неверный номер месяца!n";
goto m;
}
}
/*
Метод printDate просто выводит наш день и месяц через точку.
*/
void printDate() {
std::cout << day << "." << month << std::endl;
}
friend bool operator== (const Data& c1, const Data& c2);
};
/*
Выполняем перегрузку оператора сравнения ==, до этого в классе объявляем данный метод как дружественный.
*/
bool operator == (const Data& n1, const Data& n2) {
if (n1.month == n2.month && n1.day == n2.day)
return true;
return false;
}
/*
В основной программе проверяем работу всех наших методов.
*/
signed main(){
setlocale(LC_ALL, "Rus");
Data n1, n2;
n1.inputDate();
n2.inputDate();
if (n1 == n2)
std::cout << "YESn";
else
std::cout << "NOn";
n1.printDate();
n2.printDate();
return 0;
}
вот этого я не знаю, в задании это не говорилось
Составление интервалов это просто метод, который выводит наши поля на экран?
да
скорее всего
а как можно сложить две даты?