C++ необходимо реализовать библиотеку, экспортирующую следующие классы: 1. интерфейс imilitaryman (военный), содержащий виртуальный деструктор и единственный чисто-виртуальный метод void serve() (служить). 2. класс soldier (солдат), наследующий imilitaryman и реализующий его интерфейс. реализация метода serve() должна увеличивать количество выполненных поручений солдатом. в конструкторе класса должно устанавливаться начальное количество поручений (jobcount) солдата, равное 0. 3. класс officer (офицер) наследующий imilitaryman и имеющий подчинённых. военные (как офицеры, так и солдаты), находящиеся в подчинении офицера, ему в конструкторе в виде массива. реализация метода serve() должна делегировать выполнение поручения подчинённым. деструктор класса officer должен выполнить освобождение подчинённых. необходимо реализовать как минимум следующие тесты для проверки классов soldier и officer: 1. создать экземпляр класса soldier, присвоить его переменной militaryman типа imilitaryman & и убедиться, что при вызове метода militaryman.serve() будет увеличено количество выполненных поручений у солдата. 2. создать экземпляр класса officer с экземплярами классов подчинённых ему военных: двух солдат и одного офицера, у которого в подчинении находится ещё четыре солдата. присвоить созданный экземпляр класса officer переменной militaryman типа imilitaryman & и убедиться, что при вызове метода militaryman.serve() у всех шести солдат будет увеличено количество выполненных поручений. 3. убедиться, что деструкторы подчинённых вызываются при вызове деструктора officer. для этого разрешается использовать (экспортировать библиотекой) переменную с общим количеством существующих на данный момент экземпляров военных.
Слишком коротко. Напишите минимум 20 символов, чтобы объяснить все.
Объяснение: