I think in Qt there's a possibility of doing this using singal and slots. Emitting a signal when the base class function is called, where the signal -in all instances of the derived class- is connected to a slot which calls the base class function. The signal can carry a variable which informs the slot that it should not emit the signal again to prevent a loop.