>
};
У наведеному прикладі похідний клас Level1 успадковує компоненти базового класу Level0. Похідний клас містить всі компоненти базового, а також компоненти, визначені в самому похідному класі. br/>
2. Доступ до спадкоємною компонентам
Доступність різних складових (компонентів) класу в похідному класі визначається відповідним ключем доступу, задається словами private, public або protected.
Приватний (private) компонент класу доступний тільки інших компонентів і друзям цього класу, тоді як загальний (public) компонент доступний і поза даного класу. Приватні компоненти базового класу для похідних класів є недоступними. p align="justify"> Програміст може дозволити похідним класам доступ до конкретних компонентів базового. C + + має також третю категорію доступності компонентів класу, звану захищеної (protected). Захищені компоненти недоступні ні для яких частин програми, за винятком компонентів похідних класів.
Клас може бути успадкований як public або як private. При цьому модифікатор private трансформує компоненти базового класу з атрибутами доступу public і protected в компоненти private похідного класу, у той час як private-компоненти стають недоступні в похідному класі. p align="justify"> Модифікатор спадкування public не змінює рівня доступу. Похідний клас успадковує всі компоненти свого базового класу, але може використовувати тільки ті з них, які визначені з атрибутами public і protected. p align="justify"> Різні типи успадкування впливають тільки на доступ за замовчуванням компонентів базового класу в похідному класі. Правила спадкування доступу показані в табл.4.1. br/>
Таблиця 4.1
Доступ спадкування Доступ компонентів в базовому класі Доступність компонентів базового класу в похідному класі public public protected private public protected недоступний private public protected private private private недоступний
При оголошенні класу-нащадка за допомогою ключового слова class статусом доступу за умовчанням є private, а при оголошенні за допомогою ключового слова struct - public, тобто
D: B {... }; Означає: struct D: public B {public: ...};
Компонент, наслідуваний як public, зберігає той же тип доступу, що був у нього в базовому класі. У наступному фрагменті допустимими є тільки задані типи доступу. p align="justify"> Level0 {// Базовий клас: int a;: int b;: int c; e; f0 ();
}; Level1a: public Level0 {: int d;: int f; f1 ();
};
// Звичайна функція - має доступ тільки до public-компонентамfn () {L0; a L1;. e = 1;// public-компонент.e = 1;// public-компоненти з Level0 є