An abstract class is one that is intended to be used as a base class .
At least one pure virtual function exists in an abstract class.
A pure virtual function is declared in the class declaration by using a pure specifier (= 0) in the declaration of a virtual member function.
Here is an example of an abstract class:
class AB { public: virtual void f() = 0; };
The AB::f function is a pure virtual function.
There can't be a pure specifier and a definition in the same function declaration.
The compiler, for example, will not permit the following:
struct A { virtual void g() { } = 0; };