ність принципу успадкованого властивостей. Наприклад, можна визначити в програмі клас Людина з компонентами Прізвище , Ім'я , По батькові і рік народження. Функції-методи, які можуть знадобитися при роботі з об'єктами цього класу, такі, як: ЗадатьФамілію , ДатьГодРожденія , ВивестіНаЕкранФІО і т.д. , також будуть визначені в цьому класі. Якщо в програмі знадобиться визначити який-небудь інший об'єкт, скажімо, Працівник або Студент , стає очевидним, що цей клас буде окремим випадком класу Людина , оскільки всі компоненти класу Людина необхідно повністю переписати в клас Працівник span> або Студент . Набагато зручніше в цьому випадку просто-яким чином при визначенні таких похідних класів послатися на базовий клас, сказавши тим самим, що всі його компоненти запозичуються. У тому ж випадку, якщо потрібно довизначити в похідному класі власні компоненти, наприклад Зарплата або НомерЗачетнойКніжкі , їх можна описати в похідному класі заново. Такий механізм успадкування дійсно існує в С + +.
Похідний клас будується на базі вже існуючого з по-міццю конструкції такого вигляду:
Base {
// Елементи базового класу
}; Derived: [модифікатор доступу] Base {
// Елементи похідного класу
};
При визначенні похідного класу за його ім'ям слідують роздільник - двокрапка (:), потім необов'язковий модифікатор доступу та ім'я базового класу. Модифікатор доступу визначає область видимості успадкованих компонентів для похідного класу і його можливих нащадків.
Розглянемо приклад.
Level0 {// Базовий клас: int a;: int b;: int c; f0 ();
}; Level1: public Level0 {// Похідний клас: int d;: int e;: int f; f1 ();