русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Роль успадковування при розробці програм


Дата додавання: 2014-04-22; переглядів: 1089.


Процес розробки програм серйозно змінився після появи ООП. Це зв’язано не лише з використанням класів, але і з використанням успадковування. Розглянемо його етапи.

Нехай програміст А створює певний клас. Програмісту В подобається цей клас, але він вирішує його удосконалити, додавши якісь нові члени. Він, в свою чергу, створює клас, похідний від першого.

Наступний програміст може не мати доступу до вихідного коду, написаного програмістом А чи програмістом В. Але в С++ існує можливість повторного використання коду, тому і цей третій програміст може використовувати і доповнювати роботу своїх попередників.

Зауважимо, що при такій організації роботи відмінності між розробниками системного і прикладного програмного забезпечення стають неістотними. Отож ООП робить програмування більш гнучким і, в той же час, складнішим.

 

Підсумок

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

Важливим питанням є доступність членів базового класу для методів похідних класів та об’єктів похідних класів. До полів та методів базового класу, оголошених як protected, можуть мати доступ тільки методи похідного класу. Об’єкти зовнішніх класів, включаючи похідний клас, в цьому випадку доступу до базового класу не мають. Класи можуть бути загальними і приватними похідними базового класу. Об’єкти загального похідного класу мають доступ до членів базового класу, оголошених як public, а об’єкти приватного похідного класу доступу до них не мають.

Клас може бути похідним більше ніж одного базового класу. Цей випадок називається множинним успадковуванням. Також клас може міститися всередині іншого класу.

Включення – це відношення типу «має» або «є частиною», при цьому один клас містить об’єкти іншого класу.

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

 

Питання по темі

1. Призначення успадковування полягає в тому, щоб:

а) створювати більш загальні класи в більш спеціалізованих

б) передавати аргументи об’єктам класів

в) додавати можливості до існуючих класів без їх модифікації

г) покращити приховування даних та їх інкапсуляцію

 

2. Перевага використання успадковування полягає в:

а) забезпеченні розвитку класу шляхом природного відбору

б) полегшення створення класу

в) повторного використання коду

 

3. Вкажіть правильний перший рядок опису класу Bosworth, який є public-похідним класу Alphsonso

а) Alphonso::Bosworth(public)

б) class Bosworth: public Alphonso

в) public class Bosworth: Alphonso

 

4. Члени базового класу для доступу до них методів похідного класу повинні бути оголошені як

а) public або protected

б) public або private

в) private або protected

 

5. Нехай базовий клас містить метод basefunc(), а похідний клас не має методу з таким іменем. чи може об’єкт похідного класу мати доступ до методу basefunc()?

а) так, завжди

б) ні

в) так, якщо цей метод не є прихованим

 

6. Чи є істинним такий вираз: якщо конструктор похідного класу не визначений, то об’єкти цього класу будуть використовувати конструктор базовго класу?

а) так

б) ні

 

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

а) метод похідного класу

б) метод базового класу

 

8. Оператор дозволу звичайно:

а) обмежує видимість змінних для певних методів

б) визначає, від якого базового класу створений похідний

в) розв’язує невизначеності

 

9. Припустімо, що існує клас Derv, похідний від базового класу Base. Напишіть оголошення конструктора похідного класу, який приймає один цілий аргумент і передає його в конструктор базового класу.

а) Derv(int i):Base(i) {};

б) Derv(Base(int i));

в)Base::Derv(int i);

 

10. Припустімо, що клас Derv є приватним похідним класу Base. Ми визначаємо об’єкт класу Derv, розміщений в функції main(). Через нього ми можемо дістати доступ до:

а) членів класу Derv, оголошених як public

б) членів класу Derv, оголошених як protected

в) членів класу Derv, оголошених як private

г) членів класу Base, оголошених як public

д) членів класу Base, оголошених як protected

е) членів класу Base, оголошених як private

 

11. Чи істинне твердження: клас D може бути похідним класу С, який є похідний від класу В, для якого є базовим клас А?

а) так

б) ні

 

12. Припустімо, що клас Derv є похідним від класу Base. Обидва класи містять метод func без аргументів. Як правильно викликати метод func() базового класу з методу класу Derv?

а) func();

б) Base::func();

в) Base:func();

 

13. Як правильно описати клас С, що є похідним класів А і В?

а) class C: public A, public B;

б) class C: public A B;

в) class C::public A, public B;

 

14. Чи істинне твердження: неможливо зробити об’єкт одного класу членом іншого класу?

а) так

б) ні

 

15. Включення – це

а) форма реалізації

б) форма узагальнення

в) відношення типу «має»

 

 



<== попередня лекція | наступна лекція ==>
Включення: класи в класах | Тема 12. Вказівники


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн