Class mist

{

void fl();

void f2();

};

Функції f1() і f2() є дружніми по відношенню до класу hero (хоча і описані без ключового слова friend) і мають доступ до всіх його полів. Оголошення friend не є специфікатором доступу і не успадковується.

 

Завдання

 

Даний розділ тісно пов’язаний з динамічними структурами даних де розглядаються вкладені класи. Варіанти завдань треба виконати з використанням вкладених класів.


РОЗДІЛ 3. СПАДКУВАННЯ КЛАСІВ

3.1 Спадкування класів

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

При описі класу в його заголовку перераховуються всі класи, що є для нього базовими. Можливість звернення до елементів цих класів регулюється за допомогою ключів доступу private, protected і public:

 

class ім'я : [private | protected | public] базовий_клас

{ тіло класу };

 

Якщо базових класів декілька, вони перераховуються через кому. Ключ доступу може стояти перед кожним класом, наприклад:

 

class А { ... };

class В { ... };

class С { ... };

class D: А, protected В, public С { ... };

 

За умовчанням для класів використовується ключ доступу private, а для структур – public. До цих пір ми в основному розглядали специфікатори доступу private і public. Для будь-якого елементу класу може також використовуватися специфікатор protected, який для одиночних класів, що не входять в ієрархію, рівносильний private. Різниця між ними виявляється при спадкуванні, що можна бачити з приведеної таблиці:

Як видно з таблиці, private елементи базового класу в похідному класі недоступні незалежно від ключа. Звернення до них може здійснюватися тільки через методи базового класу. Елементи protected при спадкоємстві з ключем private стають в похідному класі private, в решті випадків права доступу до них не змінюються.

 

 

Ключ доступу Специфікатор у базовому класі Доступ в похідному класі
private private немає
protected private
public private
protected private немає
protected protected
public protected
public private немає
protected protected
public public

 

Доступ до елементів public при спадкуванні стає відповідним ключу доступу. Якщо базовий клас успадковується з ключем private, можна вибірково зробити деякі його елементи доступними в похідному класі, оголосивши їх в секції public похідного класу за допомогою операції доступу до зони видимості:

 








Дата добавления: 2014-12-26; просмотров: 768;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.