Справочники 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().


Дополнительные возможности:

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

Пока комментариев нет