#include 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 << "YES\n"; else std::cout << "NO\n"; n1.printDate(); n2.printDate(); return 0; }