部分类型转换
随着C++标准的发展,提供了dynamic_cast、const_cast 、static_cast、reinterpret_cast等高级安全的强制转换方法。
dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast。
const_cast: 主要针对const和volatile的转换。
static_cast: 一般的转换,no run-time check.通常,如果你不知道该用哪个,就用这个。
reinterpret_cast: 用于进行没有任何关联之间的转换,比如一个字符指针转换为一个整形数。
用法:
int YYY;
quint16 ZZZ = static_cast<XXX>(YYY); //其他一样
QT框架提供的强制类型转换方法:
qobject_cast qobject_cast()函数的行为类似于标准C ++ dynamic_cast(),其优点是不需要RTTI支持,并且它可以跨动态库边界工作。
QObject *obj = new QTimer; //QTimer inherits QObject
QTimer *timer = qobject_cast<QTimer *>(obj);
参考文档 他人源文档