virtual void Execute() = 0;
The = 0
is a way to make a function a pure
This in effect makes the class an abstract base class
in which there is no implementation of the functions.
An abstract base class is a class that has no implementation. You cannot instantiate objects from abstract base classes. However you can create derived classes from these ABC's.
The purpose of an ABC is to create a generic class that you can derive from and then have a set of functions that you can implement differently for each derived class.
When a class has a virtual function, it just means that you can use a function name and have the compiler figure out which class to call. You can also define virtual functions in the implementation. Pure Virtual functions just say "hey don't make an object out of me, derive me first, then use my name". You cannot implement them.