The SFML Drawable class
The Drawable class has just one function. It has no variables either. Furthermore, its one and only function is pure virtual. This means that if we inherit from Drawable, we must implement its one and only function. The purpose of this, which you may remember from Chapter 12, Abstraction and Code Management — Making Better Use of OOP, is that we can then use our class, which inherits from drawable, as a polymorphic type. Put more simply, anything that SFML allows us to do with a Drawable object, we will be able to do with our class that inherits from it. The only requirement is that we must provide a definition for the pure virtual function, draw.
Some classes that inherit from Drawable already include Sprite and VertexArray (among others). Whenever we have used Sprite or VertexArray, we have passed them to the draw function of the RenderWindow class.
The reason that we have been able to draw every object we have drawn in this book...