Реалізація ієрархії в мові С++. Множинне успадкування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2001
Тип роботи:
Інші
Предмет:
Інформаційні технології

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” І Н С Т Р У К Ц І Я до лабораторноі работи № 4 Реалізація ієрархії в мові С++. Множинне успадкування. з курсу "Методи та засоби об’єктно-орієнтованого проектування " для студентів спеціальності 7.080402 - "Інформаційні технології пректування" ЗАТВЕРДЖЕНО: на засіданні кафедри САПР Протокол № 14 від 3.04.1997 р. Львів -2001 1. МЕТА РОБОТИ Мета даної роботи є ознайомлення із принципами множинного успадкування. 2. ТЕОРЕТИЧНА ЧАСТИНА Ієрархію простого успадкування можна описати, використовуючи структуру дерева, де кожен вузол - це підклас, який може породжувати довільну кількість додаткових підкласів. Як і у випадку простого успадкування, визначення private, protected i public в батьківському класі можна використовувати для управління доступом до екземплярів змінних і методів, які успадковані похідним класом (підкласом) від базового (батьківського) класу. Крім того, специфікатори public - або private - похідного класу, як і при простому успадкуванні, визначають кожні класи, об’єкти яких мають прямий доступ до відкритих даних або функцій-членів базового класу. Множинне успадкування реалізовано у версіях С++, починаючи з 2.0. Підклас може успадковувати протокол одного або більше батьківських класів. При цьому, помимо специфікаторів public- і private- похідних класів використовується додаткова опція virtual. Приклад опису класів при множинному успадкуванні: class X1 {private: d1; m1; protected d2; m2; public: d3; m3; }; class X2 {private: d4; m4; protected d5; m5; public: d6; m6; }; class Z: public X1 , public X2 {private: zd1; zm1; protected zd2; zm2; private: zd3; zm3; }; Похідний клас в ієрархії множинного успадкування не має доступу до захищених екземплярів змінних любих його базових класів. При використанні множинного успадкування , в протокол похідного класу необхідно викликати конструктори базових класів для ініціалізації полів даних та ініціалізувати різні елементи об’єктів. Порядок виклику конструкторів: Ініціалізація здійснюється в порядку, визначеному ініціалізуючим списком з тим обмеженням, що конструктори базових класів завжди викликаються перед конструктором полів даних. Void - конструктори базових класів, які явно не вказані в списку ініціалізації, викликаються після конструкторів, явно ініціалізованих базових класів, в цьому порядку, в якому вони йдуть в оголошенні класу. Але void - конструктори викликаються перед любим конструктором полів даних. Для опису ієрархії множинного успадкування можна використати прямий ациклічний граф (ПАГ) (рис.1). Parent Child1 Child2 GrandChild Рис.1. ПАГ множинного успадкування В такому графі клас може з’явитись більше, ніж один раз. Розглянемо ПАГ множинного успадкування, представлений на рис.1. Елементи даних (екземпляри змінних) класу Parent з‘являються двічі в класі GrandChied. Перший набір успадковується через Chid1, другий через Chid2. Таке успадкування буває небажаним. Віртуальні базові класи [3,4,5] забезпечують механізм для уникнення дублювання елементів в класі, такому як GrandChied. 4. ЛАБОРАТОРНЕ ЗАВДАННЯ Одержати індивідуальне завдання. Із похідних класів, отриманих у лаб.роботі №3, шляхом множинного успадкування, утворити новий клас. Для об’єктів даного класу показати всі можливі механізми доступу до протоколів базових класів. 5. ЗМІСТ ЗВІТУ Мета роботи. Короткий опис особливостей множинного успадкування в С++. Індивідуальне завдання. Текст програми на С++. Результати виконання програми. Аналіз результатів, висновки. 6. СПИСОК ЛІТЕРАТУРИ Касаткин А.И., Вальвачев А.Н. Профессиональное програмирование на языке Си: От Turbo к Borland C++:Справ. пособие; Под общ. ред. А..И.Касаткина. - Мн.:Выш.шк. -1992 Бьярн Страуструп Язык програмирования С++ Т.1,:Киев “ДиаСофт”. -1993 Ричард Вайнер, Люис Пинсон С++ изнутри. -Киев: Диасофт. -1993. Стефан Дьюхарст, Кэти Старк Программирование на С++. -Киев: Диасофт. -1993. Скляров В.А. Язык С++ и обьектно-ориентированное программирование. -Мн.: Высш.шк. -1997.
Антиботан аватар за замовчуванням

20.07.2020 13:07-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!