Лекція " Абстрактні класи"

Про матеріал
Тема 6. Абстрактні класи Зміст теми. Призначення абстрактних класів. Оголошення абстрактних класів. Реалізація абстрактних класів.
Перегляд файлу

 

Тема 6. Абстрактні класи

Зміст теми. Призначення абстрактних класів. Оголошення абстрактних класів. Реалізація абстрактних класів.

 

 

Клас є абстрактним, якщо він має хоча б одну чисту віртуальну функцію. Чистою віртуальною функцією є така функція, у якої в її оголошенні тіло визначене як  0. Наприклад:

virtual float Func()=0;

Абстрактні класи призначені для представлення загальних понять, які передбачається конкретизувати в похідних класах. Абстрактний клас може використовуватися тільки як базовий для інших класів – об'єкти абстрактного класу створювати не можна, оскільки прямий або непрямий виклик чисто віртуального методу приводить до помилки при виконанні.

Якщо клас, похідний від абстрактного класу, не визначає всі чисто віртуальні функції, він також є абстрактним.

Створювати функцію, параметром якої є покажчик на абстрактний клас, можна. На місце цього параметра при виконанні програми може передаватися покажчик на об'єкт будь-якого похідного класу. Це дозволяє створювати поліморфні функції, що працюють з об'єктом будь-якого типу в межах однієї ієрархії.

 

Запитання для самоконтролю

 

  1. Дайте визначення абстрактного класу.
  2. Чи можна створювати об’єкти абстрактного класу?
  3. Виявіть відмінності між віртуальними функціями і чистими віртуальними функціями.
  4. Чи вірно, що всі віртуальні функції в абстрактному базовому класі повинні бути оголошені як чисті віртуальні функції?
  5. Чи можна створювати функцію, параметром якої є покажчик на абстрактний клас?

 

docx
Додано
14 квітня 2020
Переглядів
587
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку