Абстрактные методы C++ (или чистые виртуальные методы) -- что это такое

Абстрактный метод (или чистый виртуальный метод (pure virtual method - часто неверно переводится как чисто виртуальный метод)) — в объектно-ориентированном программировании, метод класса, реализация для которого отсутствует.

Класс, содержащий абстрактные методы, также принято называть абстрактным (там же и пример).
Абстрактные методы зачастую путают с виртуальными. Абстрактный метод подлежит определению в классах-наследниках, поэтому его можно отнести к виртуальным, но не каждый виртуальный метод является абстрактным.

Абстрактный метод ничего не делает, но определяет параметры и возвращаемое значение.

Назначение абстрактных методов:

  1. описание абстракции, которая не в более конкретизированном виде не может быть реализована;
  2. формальное (без реализации — есть или нет) удовлетворение требований о наличии статических методов при обращении к ним для прохождения проверки компилятора статической типизации, когда реализация их будет определена динамически (в процессе работы программы).
class CA { // Абстрактный класс
  public:
    CA ( void ) { std::cout << "This object of the class "; }
 
    virtual void Abstr ( void ) = 0; // Чистая (пустая) виртуальная функция.
    void         fun   ( void ) { std::cout << "Реализация не будет наследоваться!"; }
 
    ~CA () { std::cout << "." << std::endl; } //Вызывается в обр. порядке конструкторов
  };

про абстрактный класс написано здесь