Некоторые преимущества использования абстрактных классов в C++:
- Повторное использование кода. 2 Абстрактные классы позволяют экономить время и усилия, так как не нужно переписывать существующий код. 2
- Абстракция. 2 С помощью абстрактных классов можно скрыть детали реализации, что упрощает чтение и обновление кода. 2
- Полиморфизм. 2 Использование абстрактных классов позволяет сделать код более расширяемым и адаптируемым. 2
- Проверка ошибок. 2 Абстрактные классы могут требовать проверки ошибок для снижения количества ошибок в коде. 2
- Документация кода. 2 Абстрактные классы можно использовать в качестве инструмента для документации кода. 2
Некоторые недостатки использования абстрактных классов в C++:
- Ограничения в использовании. 35 От абстрактных классов нельзя создавать объекты, в них нельзя декларировать нестатические элементы данных. 3 Абстрактные типы не могут использоваться как типы параметров, как типы возвращаемых из функции значений, или как тип явного преобразования. 3
- Неопределённое поведение. 35 Виртуальный вызов чисто-виртуальной функции из конструктора или деструктора абстрактного класса приведёт к неопределённому поведению. 3