I have the following snippet:
    class A : public QWidget
    {
       Q_OBJECT
   public:
     A(QWidget *parent = 0);
     void
     setGeometry(int x, int y, int w, int h);
      protected:
       virtual void
       resizeEvent(QResizeEvent *event);
    }
    class B : public A
    {
       Q_OBJECT
   public:
     B(A*parent = 0);   
     void
    setGeometry(int x, int y, int w, int h);
   protected:
     virtual void
     resizeEvent(QResizeEvent *event);
    }
void
A::setGeometry(int x, int y, int w, int h) 
{
    QWidget::setGeometry(x, y, w, h);
}
void
A::resizeEvent( QResizeEvent * event) 
{
    QWidget::resizeEvent(event);
    // common A and B stuff
}
void
B::setGeometry(int x, int y, int w, int h) 
{
    A::setGeometry(x, y, w, h);
}
void
B::resizeEvent( QResizeEvent * event) 
{
    A::resizeEvent(event);
}
Calling setGeometry on an instance of A will fire resizeEvent() . Invoke setGeometry on an instance of B will not fire  resizeEvent(). Is there anything wrong with this?
EDIT:
I could do the same calculation I need inside setGeometry successfully. Now, mine is only curiosity. 
 
     
    