Abstract classes – virtual and pure virtual functions
An abstract class is a class that cannot be instantiated and therefore cannot be made into an object.
Tip
Some terminology we might like to learn about here is concrete class. A concrete class is any class that isn't abstract. In other words, all the classes we have written so far have been concrete classes and can be instantiated into usable objects.
So, it's code that will never be used, then? But that's like paying an architect to design your home and then never building it!
If we, or the designer of a class, wants to force its users to inherit it before using their class, they can make a class abstract. If this happens, we cannot make an object from it; therefore, we must inherit from it first and make an object from the sub-class.
To do so, we can make a function pure virtual and not provide any definition. Then, that function must be overridden (rewritten) in any class that inherits from...