DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

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

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра програмного забезпечення

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

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Системне програмне забезпечення
Група:
КН-116
Коротко про документ

Про що ця робота

У звіті розглядаються принципи та особливості реалізації множинного успадкування в мові програмування C++. Описується порядок виклику конструкторів та використання віртуальних базових класів для уникнення дублювання даних.

У роботі розглядаються

  • Множинне успадкування
  • Об'єктно-орієнтоване програмування
  • Мова C++
  • Ієрархія класів
  • Конструктори базових класів
  • Віртуальні базові класи

Зміст і розділи

  1. Мета роботи
  2. Теоретична частина
Для кого:Студенти технічних спеціальностей, які вивчають об'єктно-орієнтоване програмування та мову C++.
Викладачі:Викладач

Ключові поняття

множинне успадкуваннябазовий класпохідний класспецифікатор доступупрямий ациклічний графвіртуальний базовий класієрархія

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

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ Національний університет “Львівська політехніка” ЗВІТ до лабораторноі работи № 4 Реалізація ієрархії в мові С++. Множинне успадкування. 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.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

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

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

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

Admin

26.02.2023 12:38

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