Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labor.doc
Скачиваний:
6
Добавлен:
03.11.2018
Размер:
220.16 Кб
Скачать

Лабораторна робота 7

Тема: успадкування, атрибути доступу та віртуальні функції

Варіант 1

Створити абстрактний клас для роботи з геометричними фігурами на екрані. Передбачити такі компоненти-властивості класу:

- координати центра фігури;

- кут повороту (у градусах);

- масштабний фактор;

і такі функції-методи:

- показати фігуру на екрані;

- зробити фігуру невидною (знищити її зображення);

- повернути фігуру на заданий кут (кут надається у градусах);

- пересунути фігуру на наданий вектор.

Застосовуючи успадкування і наведений вище абстрактний клас створити похідний клас для роботи з фігурою типу "трикутник". Визначити інтерфейсну частину у класах, застосувати атрибути доступу.

Варіант 2

Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "чотирикутник".

Варіант 3

Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "правильний n-кутник".

Варіант 4

Застосовуючи успадкування і наведений у завданні 7.1 абстрактний клас створити клас для роботи з фігурою типу "еліпс".

Варіант 5

Наданий такий клас:

class Base { public:

virtual void myname() { cout << "This is class Base" << endl; } };

а. Від цього класу треба створити два похідних класу: DerA і DerB.

б. Від класів DerA і DerB шляхом множинного успадкування створити клас DerAB.

в. Переозначити у кожному з створених класів функцію myname таким чином, щоб вона виводила на екран дійсне ім’я класу об’єкту, для якого вона викликається.

г. Для кожного з класів створеної ієрархії створити по одному об’єкту і для кожного з них викличте функцію myname.

д. Створіть масив із 4 покажчиків на базовий клас ієрархії. Для кожного з них створіть динамічний об’єкт, по одному для кожного з класів ієрархії. Запишіть виклик функції myname для кожного з динамічних об’єктів за допомогою покажчиків.

є. Поясніть дію функції mymain у всіх випадках.

Варіант 6

У файлах 7_05_a.cpp, 7_05_b.cpp, 7_05_c.cpp (див. Додаток Б) розміщені приклади програм, які ілюструють застосування класів для створення ефектів анімації. Розібратися як ці програми діють, виконати їх компіляцію, подивитися, як вони працюють.

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

Тема: обробка надзвичайних ситуацій

Всі класи, що були створені при виконанні попередніх завдань, доробити, передбачивши обробку надзвичайних ситуацій. Надзвичайною ситуацією вважати:

- некоректні значенні операндів при виконанні операцій;

- некоректні значенні параметрів при викликах функцій - членів класів;

- не успішне виконання операції виділення оперативної пам’яті при створенні динамічного об’єкту;

- не успішне завершення операції відкриття файлу;

- інші випадки на розсуд студента.

Для обробки надзвичайної ситуації застосувати:

а) спеціально побудовані функції типу errhalt із модулю syst.h ;

б) макрозасіб типу assert ;

в) засоби throw, try, catch .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]