Use Protected Constructors to Block Undesirable Object Instantiation
In order to block creation of class instances, you can declare its constructor as protected. class CommonRoot { protected: CommonRoot(){}//no objects of this class can be instantiated};class Derived: public CommonRoot