Qt classes have a Q_DECLARE_PRIVATE macro in the public class. The macro reads:
#define Q_DECLARE_PRIVATE(Class)\
inline Class##Private* d_func() {\
return reinterpret_cast<Class##Private*>(qGetPtrHelper(d_ptr));\
}\
inline const Class##Private d_func() const {\
return reinterpret_cast<const Class##Private *>(qGetPtrHelper(d_ptr));\
}\
friend class Class##Private;
Here, as per my understanding Class##Private will be parent of class of d_ptr then why reinterpret_cast is used and not dynamic_cast?