The parent is an abstract class, with default implicit constructor: ----------------------------------- class mhwidget { public: virtual void draw()= 0; virtual void setPosition(GLint, GLint)= 0; virtual void setWidth(GLint)= 0; virtual void setHeight(GLint)= 0; virtual bool isMouseOver(GLint, GLint)= 0; virtual ~mhwidget() {} }; ------------------------------------ The derived class I've written use a simple constructor, because the parent have the default constructor. And without destructor. ...