Do you really need m_parent in URLDispatcherInterface ? I mean you're forcing the URLDispatcherInterface constructor to get a URLDispatcher *parent parameter that you pass down to QObject so we could just save the m_parent pointer and in ::DispatchURL just do static_cast<URLDispatcher *>(parent()), no?
Do you really need m_parent in URLDispatcherIn terface ? I mean you're forcing the URLDispatcherIn terface constructor to get a URLDispatcher *parent parameter that you pass down to QObject so we could just save the m_parent pointer and in ::DispatchURL just do static_ cast<URLDispatc her *>(parent()), no?