A C++ keyword, which precedes function definitions inside classes if the function is a virtual function. A key part of the object orientated abilities of C++.

The keyword is not required if the function is overriding a virtual function already defined in an ancestor class, however it is often used anyway in order to clarify that the function is an override. The only function type you cannot use this keyword with is a constructor.

Adding "= 0" to the end of the function definition makes the function pure virtual.

An example of usage:

class myClass {
public:
  virtual void aVirtualFunction();
  virtual void pureVirtualFunction() = 0;
};