Абстрактный класс — это класс, который содержит или наследует без переопределения хотя бы одну чистую виртуальную функцию. 18 Он определяет интерфейс для переопределения производными классами. 1 От абстрактных классов нельзя создавать объекты, но они могут использоваться как базовые классы для образования конкретных, уточняющих производных классов. 3
Чистая виртуальная функция — это виртуальная функция, не имеющая имплементации в родительском классе. 4 Необходимость в ней возникает, когда пользователь не знает, какая имплементация должна быть у виртуальной функции в родительском классе, так как её имплементация зависит от типа объекта. 4 Чистую виртуальную функцию требуется инициализировать нулевым значением. 4
Таким образом, основное различие между абстрактным классом и чистой виртуальной функцией в том, что абстрактный класс содержит класс с чистой виртуальной функцией, а чистая виртуальная функция — это сама такая функция. 14