Back to questions
Junior — Middle
82
Можете объяснить, что такое абстрактный класс и в чем его отличие от обычного класса?
Answer from AI
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; // корректно