Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практикум по теме. В следующей таблице собрана коллекция фигур, которыми можно дополнить рассмотренную прикладную программу. № п/п Наименование Вид Отражение






В следующей таблице собрана коллекция фигур, которыми можно дополнить рассмотренную прикладную программу.

№ п/п Наименование Вид Отражение Поворот
  Прямоугольник нет да
  Квадрат нет нет
  Ромб нет нет
  Параллелограмм да да
  Трапеция да да
  Крест нет нет
  Косой крест нет нет
  Треугольник да да
  Кружок нет нет
  Квадрат с крестом нет нет
  Ромб с крестом нет нет
  Кружок с крестом нет нет
  Треугольник с крестом да да
  Зачёркнутый квадрат нет нет
  Зачёркнутый кружок нет нет
  Зачёркнутый треугольник да да

 

Иерархия классов фигур

Для некоторых фигур возможны поворот на 90o вправо или влево или отражение относительно горизонтальной и/или вертикальной оси симметрии, причём для части из них имеются обе возможности. Некоторые фигуры могут строиться как составные из более простых. Эти идеи можно отобразить показанной на рисунке возможной иерархией классов.

Позиции для вставки дополнительных фигур
Необходимо доработать учебную программу: добавить в коллекцию ещё одну фигуру, номер которой указан в таблице вариантов заданий. Для этой фигуры нужно будет определить подходящее место в иерархии классов и написать необходимые функции-члены. Те функции-члены, использование которых не предполагается, можно определить так, чтобы они были недоступны. Разработанной фигурой нужно дополнить картинку в указанных в варианте позициях, смысл которых поясняется рисунком справа. Возможно, некоторые из добавленных фигур нужно будет повернуть или отразить. Позиция 1 обозначает галстук или воротник, 2–3 — бакенбарды, 4–5 — уши, 6 — кокарду, 7–8 — рога, 9 — нос, 10–11 — глаза, 12 — шляпу в целом.

При примыкании фигур учитываются их габаритные точки.

4.3. Варианты индивидуальных заданий к теме
«Наследование и изоморфизм»

№ вари- анта Фигура Расположение № вари- анта Фигура Расположение
    2, 3, 10, 11     6, 7, 8
    1, 4, 5     9, 10 11
    4, 5     7, 8, 12
    10, 11, 12     4, 5, 9
    4, 5, 6     1, 7, 8
          1, 2, 3
    7, 8     1, 4, 5
    10, 11, 12     4, 5
    2, 3     1, 7, 8
    4, 5     7, 8
    1, 12     1, 4, 5
    4, 5, 9     4, 5, 6
    1, 12     4, 5
    10, 11     1, 6, 9
    1, 7, 8, 12     1, 2, 3
    6, 7, 8     2, 3, 9
    2, 3, 7, 8     10, 11
    10, 11     1, 2, 3, 7, 8
    2, 3, 7, 8     2, 3, 12
    1, 12     10, 11
    2, 3, 12     2, 3, 6
    2, 3, 9     9, 10, 11
    7, 8, 9      
    1, 4, 5     4, 5
    7, 8     4, 5, 7, 8

4.4. Требования к отчёту

В отчёт по этой теме включите описание получившейся иерархии классов и пояснения, какие функции-члены пришлось переопределить и почему.

Контрольные вопросы

1. Какой базовый класс лучше всего использовать для производного класса «треугольник»?

2. То же — для класса «кружок»?

3. То же — для класса «крестик»?

4. Какой тип наследования следует выбрать: private, public или protected?

5. Можно ли вообще не указывать тип наследования?

6. В чём смыл объявлении функций в базовом классе как виртуальных?

7. Что такое «чисто виртуальная функция»?

8. Обязательно ли переопределять все функции-члены базового класса в производном классе?

9. Зачем может понадобиться создание набора (массива или списка) указателей на разные типы объектов в пределах некоторой иерархии?

10. Как запретить для объекта вызов конструктора по умолчанию?

11. Как запретить вызов конструктора для использования в качестве неявного преобразователя типа?

12. Каким образом можно установить значение переменных объекта, объявленных с модификаторами const?

13. Каким образом следует инициализировать объект базового класса в конструкторе производного класса? Всегда ли это нужно делать?

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.