Довідники C++ abstract

Що таке abstract в C++?

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


Оголошення абстрактного класу:

// Абстрактний клас
class Shape {
public:
     // Чисто віртуальна функція (абстрактна функція)
     virtual void draw() const = 0;

     // Віртуальний деструктор
     virtual ~Shape() = default;
};

У цьому прикладі draw() є суто віртуальною функцією, що робить клас Shape абстрактним. Абстрактні класи не можуть мати екземплярів.


Виробничий клас з реалізацією:

// Похідний клас
class Circle : public Shape {
public:
     // Реалізація суто віртуальної функції
     void draw() const override {
         std::cout << "Drawing a circle." << std::endl;
     }
};

Клас Circle успадковує від абстрактного класу Shape і реалізує його суто віртуальну функцію draw().


Додаткові можливості:

  • Абстрактні методи:Абстрактні методи не мають реалізації в абстрактних класах, надаючи інтерфейс для похідних класів.
  • Віртуальні деструктори:Для абстрактних класів рекомендується використовувати віртуальні деструктори, щоб забезпечити правильне видалення об'єктів під час використання покажчиків на базовий клас.
Коментарі
Додати коментар

Поки що коментарів немає