Sobes.tech
Назад к вопросам
Junior — Middle
81

Можете объяснить, что такое абстрактный класс и в чем его отличие от обычного класса?

Ответ от нейросети

sobes.tech AI

Абстрактный класс — это класс, который не предназначен для создания экземпляров напрямую, а служит как базовый для других классов. В C++ абстрактный класс определяется наличием хотя бы одной чисто виртуальной функции (pure virtual function).

Отличия абстрактного класса от обычного:

  • Нельзя создать объект абстрактного класса напрямую.
  • Содержит по крайней мере одну чисто виртуальную функцию, которую должны реализовать производные классы.
  • Используется для определения интерфейса и общей функциональности, которую должны наследовать подклассы.

Пример:

class AbstractBase {
public:
    virtual void doSomething() = 0; // чисто виртуальная функция
};

class Derived : public AbstractBase {
public:
    void doSomething() override {
        // реализация
    }
};

// AbstractBase obj; // ошибка, нельзя создать объект абстрактного класса
Derived d; // корректно