• 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. Для этого разрешается использовать (экспортировать библиотекой) глобальную переменную с общим количеством существующих на данный момент экземпляров военных.

Ответы 1

  • Ответ:

    Слишком коротко. Напишите минимум 20 символов, чтобы объяснить все.

    Объяснение:

    answer img
    • Автор:

      mccarty
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years