I have a base class Map which multiple classes inherit from (e.g. France, Germany, Spain, etc). The subclasses simply initialize a constant adjacency list in the base class (via the constructor initialization list) for their respective country, while all functionality is implemented in Map.
As Map should never be instantiated, I have would like to make it an abstract class. However, to do that I would need to declare at least 1 pure virtual function which would then require the derived classes to override. As all functionality is common to all derived classes, it makes sense to keep everything in Map rather than reimplementing in each subclass.
Is there a way around this, or do I need to rethink my design?