Pure virtual functions are defined in order to prevent the class from being constructed directly.
Function marked as pure have to be marked as virtual, also.