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
?