ООП(c++)
Задание
Реализуйте класс, моделирующий заданный тип объектов предметной области.
Не должно быть возможности создать или перевести объект в некорректное состояние (например, человек с отрицательным возрастом).
Хорошо подумайте над интерфейсом вашего класса. Необходимые поля и методы заданы, но вы можете добавить свои, если в этом есть необходимость.
Описание класса должно быть разбито на два файла – заголовочный и реализации.
Напишите программу, демонстрирующую работоспособность всех методов.
Необходимо использовать функции и объекты стандартной библиотеки С++, а не С, где это возможно. Например, хранить строки в объекте класса std::string, а не в виде массива символов, использовать std::cin и std::cout для ввода и вывода соответственно.
6. Солдат
Необходимо разработать класс Солдат для симулятора военных действий.
ФИО и номер солдата задаются при создании объекта и далее не изменяются. Солдат характеризуется моральным духом, который повышается при повышении звания и наоборот. При ранении моральный дух падает. При успешном завершении боя моральный дух растёт и наоборот. Раненые и убитые солдаты не могут участвовать в боях (методы учёта результатов боя не работают).
Поля: ФИО, войсковое воинское звание, моральный дух, количество выигранных боёв, количество проигранных боёв, состояние (в строю, ранен, убит), личный номер солдата.
Методы: вернуть ФИО, вернуть звание, вернуть моральный дух, повысить/понизить в звании, вернуть количество выигранных боёв, учесть выигранный бой (в виде параметра передаётся новое состояние солдата), вернуть количество выигранных боёв, учесть проигранный бой (аналогично), вернуть состояние, вернуть номер солдата; вылечить раненого солдата.