Зміст теми. Призначення абстрактних класів. Оголошення абстрактних класів. Реалізація абстрактних класів.
Клас є абстрактним, якщо він має хоча б одну чисту віртуальну функцію. Чистою віртуальною функцією є така функція, у якої в її оголошенні тіло визначене як 0. Наприклад:
virtual float Func()=0;
Абстрактні класи призначені для представлення загальних понять, які передбачається конкретизувати в похідних класах. Абстрактний клас може використовуватися тільки як базовий для інших класів – об'єкти абстрактного класу створювати не можна, оскільки прямий або непрямий виклик чисто віртуального методу приводить до помилки при виконанні.
Якщо клас, похідний від абстрактного класу, не визначає всі чисто віртуальні функції, він також є абстрактним.
Створювати функцію, параметром якої є покажчик на абстрактний клас, можна. На місце цього параметра при виконанні програми може передаватися покажчик на об'єкт будь-якого похідного класу. Це дозволяє створювати поліморфні функції, що працюють з об'єктом будь-якого типу в межах однієї ієрархії.
Запитання для самоконтролю