Лабораторная работа № 3 "Динамический полиморфизм" по дисциплине "Объектно-ориентированное программирование".
Вариант №3. Время.
Задание:
Часть 1. Разработка абстрактного класса.
Согласно варианту задания, разработайте структуру абстрактного класса, который объявляет собой минимально необходимый интерфейс. Например, для класса «матрица» - мы получим класс абстрактной матрицы, который даже может не инкапсулировать никаких данных. Минимальный интерфейс включает в себя: функции ввода и вывода.
Часть 2. Разработайте производный класс, осуществив его наследование от разработанного абстрактного класса, с реализацией всех чисто виртуальных функций.
Этот класс будет основным, в его реализации можно использовать рабзработку по предыдущим лабораторным работам. Методы, добавленные в работе №2 (перегружающие операторы), включать в данный класс не нужно. Разработку класса можно разбить на 2 этапа.
На первом, класс должен включить в себя:
-
Поля-данные, для хранения значений (Hour, Min, Sec).
-
Реализации виртуальных функций ввода и вывода.
На втором этапе мы реализуем механизм хранения. Добавляем в класс:
-
Static ДИНАМИЧЕСКИЙ массив указателей на объекты БАЗОВОГО (абстрактного) класса.
-
Статические переменные для хранения размера массива и числа заполненных ячеек.
-
Статические функции:
-добавления указателя (типа Abstract****) на объект данного класса.
-удаление элемента с заданным номером
-обход всего массива с вызовом функции Print.
Часть 3. Разработка пользовательского интерфейса.
Идея построения – цикл меню, аналогично работе №1, здесь достаточно предоставить следующие возможности:
-создание нового объекта (и автоматическое добавление его в массив)
-ввод новых значений для объекта с заданным номером
-удаление по логическому номеру
-просмотр всего массива
ПРИМЕЧАНИЕ: для этих операций используются разработанные static методы.