Is there a way in C++ to write a concrete class which when another class is derived from it, has a method which must be overriden. An abstract class allows the forcing of the de
No, it is not possible. If you want to enforce (in compile time) a derived class to define a virtual function then its base class needs to be abstract, or in other words the base class needs to have a pure virtual function. Abstract class (with pure virtual function(s)) cannot be concrete, i.e. you cannot instantiate it.