Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 24.11.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. РЕФЕРАТ дисертації на здобуття наукового ступеня доктора філософських наук2
3. Литература - Терапия (ВРОЖДЕННЫЕ ПОРОКИ У ВЗРОСЛЫХ)
4. Авторські новотвори в поезії П. Тичини
5. тема ценностей в философии и их роль в духовной культуре личности и общества
6. Тема 21. Железнодорожные пассажирские вокзалы
7. Дефекты, эффекты в стереотипах рекламной продукции
8. реферату- Інтерференція світлаРозділ- Фізика Інтерференція світла Досі ми розглядали поширення в тій чи і
9. Курсова робота Використання народного фольклору у загальноосвітній школіrdquo; Виконала cтудентк
10. 1000 мкм. Форма клеток многоклеточных организмов может быть различной
11. тематичне моделювання та обчислювальні методи Автореферат дисертації на здобуття наукового ст
12. РЕГЛАМЕНТ СОРЕВНОВАНИЙ Команды принимающие участие в турнире проводимых под эгидой ФИФУСА разделен
13. летие победы. 1 сентября 1939 г.html
14. Несколько способов поднять собственный энтузиазм
15. Пастернак и футуризм
16. Тема 23 Платежный баланс Выполнила Зенченко Маргарита Олеговна Студентка
17. Федералізм чи унітаризм- перспективи розвитку державності України
18. Свежий взгляд на преступление Раскольникова
19. Реферат- Социальная динамика и ее проявление в общественных изменениях и процессах
20. на тему- Статистические методы изучения цен и инфляции Выполнила- студентка 3 курса Факул