Зміст
Введення
. Абстрактні класи
. Множинне спадкування
. Адреси базових класів
. Віртуальне спадкування
Висновок
Список літератури
Введення
Мета об'єктно-орієнтованого програмування полягає в повторному використанні створених вами класів, що економить ваш час і сили. Якщо ви вже створили певний клас, то можливі ситуації, що новому класу потрібні багато або навіть усі особливості вже існуючого класу, і необхідно додати один або кілька елементів даних або функцій. У таких випадках C + + дозволяє вам будувати новий об'єкт, використовуючи характеристики вже існуючого об'єкта. Іншими словами, новий об'єкт буде успадковувати елементи існуючого класу (званого базовим класом). Коли ви будуєте новий клас з існуючого, цей новий клас часто називається похідним класом. У цьому уроці вперше вводиться наслідування класів в C + +. p align="justify"> Їли ваші програми використовують спадкування, то для породження нового класу необхідний базовий клас, тобто новий клас успадковує елементи базового класу. p align="justify"> Для ініціалізації елементів похідного класу ваша програма повинна викликати конструктори базового і похідного класів. Використовуючи оператор точку, програми можуть легко звертатися до елементів базового і похідного класів. p align="justify"> Для вирішення конфлікту імен між елементами базового і похідного класів ваша програма може використовувати оператор глобального дозволу, вказуючи перед ним ім'я базової або похідного класу. p align="justify"> Спадкування є фундаментальною концепцією об'єктно-орієнтованого програмування. Виберіть час для експериментів з програмами, представленими в цьому уроці. І ви виявите, що реально спадкування реалізується дуже просто і може зберегти величезні зусилля, витрачені на програмування. br/>
1. Абстрактні класи
Абстрактним називається клас, який містить як мінімум одну чисту віртуальну компонентну функцію span> . Чистий віртуальна функція - це віртуальна функція, для якої програміст не планує в поточній версії програми мати будь-яких реалізацій. Оголошення такої функції може мати, наприклад, такий вигляд:
Employee {//Клас Службовець : name [40];// Ім'я службовця: (char * n) ;
// Чистий віртуальна функціяvoid * promote () = 0;
Абстрактний клас не може бути реалізований в об'єкті. Так, наступний рядок:
s ("My name");
викличе помилку, про як...