Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

Лабораторная №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. извлечение прибыли.html
3. Команда ветвления, команда повторения
4. Лекция 5 МЕТОДИКА И ТЕХНИКА ИНТЕРВЬЮИРОВАНИЯ Вопросы- 1
5. Статья- Квантовая теория и истоки учения об атоме
6. Уголовная ответственность дезертира
7. трудоустройстве на работу в компанию ЗАО СК СБСГарант г.
8. Общая психология Психологическая характеристика интроверсии и экстраверсии
9. Модуль 1 Теорія статистики Змістовий модуль 1
10. тематика ІНДЗ рефератів з дисципліни Комунікаційний менеджмент 1
11. Теоретические аспекты и виды договора аренды
12. Варианты исполнения сетевых контроллеров
13. сучасники Це саме хвилювало і стародавніх лікарів
14. Административно-правовые отношения (понятие и виды)
15. Курсовая работа- Технический проект участка термической обработки шевера
16. реферат дисертації на здобуття наукового ступеня кандидата наук з фізичного виховання і спорту
17. Теорія фірми
18. Введение в котором говорится главным образом об оригинальных документах истории происхождения христианств
19. Это был первый международный конгресс представителей всех европейских стран кроме Турции
20. Василий Коваленко