Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Особливості успадкування класів в C + +

Реферат Особливості успадкування класів в C + +





переходом до множинного спадкоємства порядок виконання конструкторів стає дуже важливий. Цей порядок виклику наступний:

(1) конструктори всіх віртуальних базових класів; якщо їх є більше одного, то конструктори викликаються в порядку їх успадкування;

(2) конструктори Невіртуальна базових класів в порядку їх успадкування;

(3) конструктори всіх компонентних класів.

Розглянемо наступний приклад.


# include Base1 {() {cout <<"Створення Base1" <

}; Base2 {() {cout <<"Створення Base2" <

}; Base3 {() {cout <<"Створення Base3" <

}; Base4 {() {cout <<"Створення Base4" <

}; Derived: private Base1, private Base2, private Base3 {anObject; () {}

}; main () {anObject;

}

На виході цієї програми буде наступне:

Створення Base1

Створення Base2

Створення Base3

Створення Base4

Додавання в конструктор для Derived конкретних викликів з іншим порядком і повторення програми не змінить повідомлення після виконання цієї програми.

Derived: private Base1, private Base2, private Base3 {anObject; (): anObject (), Base3 (), Base2 (), Base1 () {}

};


Зміна порядку спадкування класів змінить послідовно-ність появи повідомлень на виході програми. Оголосивши Derived наступним чином:

Derived: private Base3, private Base2, private Base1 {anObject; (): anObject (), Base1 (), Base2 (), Base3 () {}

};


можна отримати на виході програми:

Створення Base3

Створення Base2

Створення Base1

Створення Base4

Послідовність виклику деструкторів буде зворотною щодо послідовності виклику конструкторів.

Необхідність використання в програмі множинного спадкоємства найчастіше говорить про погану структуризації класів. Це могло виникнути в тому випадку, якщо програміст приділив недостатньо часу для предваритель аналізу предметної області програми на найпершому етапі її складання. Структурний підхід до об'єктно-орієнтованого проектування передбачає більш чітку організацію класів. br/>

3. Адреси базових класів


Велике число проблем при проектуванні об'єктно-орієнтованих програм виникає у зв'язку зі способом розміщення похідних класів в пам'яті. Одн...


Назад | сторінка 3 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Композиція та Успадкування класів
  • Реферат на тему: Конструктори і деструктори
  • Реферат на тему: Видатні військові вчені і конструктори Росії
  • Реферат на тему: Порядок прийняття федерального бюджету на наступний фінансовий рік
  • Реферат на тему: Підвищення швидкості виконання операції ділення в системі залишкових класів