У вас вопросы?
У нас ответы:) SamZan.net

ЗАДАНИЕ 1 Рассматривается иерархия классов геометрических фигур

Работа добавлена на сайт samzan.net: 2016-03-13

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.4.2025

Рубанчик В. Б.

Лабораторная №8

Применение механизма виртуальных функций. Виртуальные деструкторы.

2/2

Исследования механизма виртуальных функций

 ЗАДАНИЕ 1

  1.  Рассматривается иерархия классов геометрических фигур. В качестве базового используется класс Figure, не имеющий полей данных. В классе определена функция void show(void), которая выдает сообщение "Функция класса Figure".
  2.  Как производные от класса Figure (public) описываются классы кругов (Circle) и прямоугольников (Rectangle). В классе Circle конструктор принимает один аргумент (радиус) и проверяет, больше ли он нуля (при ошибке - выход из программы с соответствующим сообщением). В классе Rectangle конструктор имеет один или два аргумента - длины сторон соответственно квадрата и прямоугольника (проверка >0).
  3.  В классах Circle и Rectangle определены также следующие функции-члены:
    1.  double area(void), вычисляющая и возвращающая площадь соответствующей фигуры;
    2.  void show(void), выводящая информацию о типе фигуры (круг, прямоугольник и т.п.), о заданных размерах фигуры (например, радиус для круга, или длины сторон прямоугольника) и величину площади фигуры.

Функция show должна идентифицировать случай квадрата. Для проведения исследований в этих классах должны быть описаны public-функции, возвращающие адреса каждого из полей данных (радиуса для круга или каждой из сторон для прямоугольника).

  1.  Создать объекты классов Figure, Circle и Rectangle (прямоугольник и квадрат). Для объектов классов Circle и Rectangle выяснить структуру, для чего найти размер объекта, адрес объекта и адреса каждого из полей.
  2.  Создать массив pF из четырех указателей на Figure и инициализировать его элементы адресами созданных объектов. Вызвать для каждого из элементов массива функцию show. Описать какие результаты получены и почему.
  3.  В классе Figure описать функцию show как виртуальную. Вновь исследовать структуры объектов классов Circle и Rectangle (размеры и адреса объектов и их полей). Повторить вызовы функции для элементов массива pF. Описать какие изменения произошли в результатах работы программы.
  4.  В классе Figure объявить чисто виртуальную функцию double area(void). Откомпилировать программу. В отчете объяснить, что из ранее выполнявшегося теперь невозможно и почему. Скорректировать программу, исключив из нее неверные действия.
  5.  Вновь исследовать структуру объектов классов Circle и Rectangle.

Виртуальные деструкторы

 ЗАДАНИЕ 2 (Исследование механизма виртуальных деструкторов)

  1.  Создать иерархию классов Base <- Derived1 <- Derived2 с наследованием типа public. Классы имеют деструкторы, сообщающие о своей принадлежности данному классу.
  2.  В функции main определить два указателя pB1 и pB2 на класс Base. Инициализировать эти указатели адресами объектов типов Derived1 и Derived2, созданными с помощью операции new.
  3.  С помощью операции delete освободить память, выделенную для этих объектов. Перед выполнением операции программа должна выводить сообщение "Удаляется объект Derived1" (или Derived2). Какие деструкторы вызываются в каждом случае? Есть в этом ли проблема и какая?
  4.  Деструктор класса Base сделать виртуальным. Выполнить программу. Какие изменения произошли в результатах? Повлияла ли виртуальность деструктора класса Base на действия с объектом Derived2 ?




1. На тему- управление ассортиментом
2. [t~~d] Выберите слово содержащее звук [s~]- city Выберите слово содержащее звук [~-].html
3. З А Т В Е Р Д Ж У Ю Президент Групи компаній ФАКТОР
4. Тема лекции- Национальная экономика как система Понятие национальной экономики Субъекты национальн
5. Отчего люди не летают так, как птицы
6. Лисанд
7. Петр Ильич Чайковский
8. О катарсисе в Маленьких трагедиях А С Пушкина
9. семейные конфликты
10. СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ГРАЖДАНСКОЕ ПРАВО особенная час