51CTO博客已为您找到关于qobject_cast和dynamic_cast的相关内容,包含IT学习相关文档代码介绍、相关教程视频课程,以及qobject_cast和dynamic_cast问答内容。更多qobject_cast和dynamic_cast相关解答可以来51CTO博客参与分享和学习,帮助广大IT技术人实现成长和进步。
qobject_cast()函数和标准C++的dynamic_cast()功能类似,只是其不需要RTTI的支持,而且可以跨越动态连接库的边界。它尝试将它的参数cast成尖括号内的对象类型,如果对象是正确的类型(运行时决定)则返回非零,否则返回0,说明对象类型不兼容。 T qobject_cast ( QObject * object ) 本方法返回object向下的转型T,如果...
int iParamType[MAX_PARAMCOUNT]; //参数类型 位 ,字 st_Param() { iParamCount = 0; for (int i = 0; i < MAX_PARAMCOUNT; i++) { strParam[i] = _T(""); iParamType[i] = 0; } }//指令类型 }CmdParam[MAX_PARAMCLASS]; QLadderDiagramItem* node_temp = dynamic_cast<QLadderDiagram...
qobject_cast()对QObject类执行动态强制转换。 qobject_cast()函数的行为类似于标准c++ dynamic_cast(),但执行速度比dynamic_cast 更快,且不需要C++的RTTI 的支持,但qobject_cast 仅适用于QObject 及其派生类。 如果对象的类型正确(在运行时确定),则返回一个非零指针,如果对象的类型不兼容则返回0 条件: 强制...
除了static_cast 和 qobject_cast 之外,在 C++ 中还有其他几种类型转换方法: dynamic_cast dynamic_cast 是一种动态类型转换运算符,它可以将一个指向父类的指针转换成指向子类的指针。基本语法为: dynamic_cast<目标类型*>(源类型指针); 需要注意的是,只有在源类型与目标类型之间存在继承关系时,这种类型的转换才...
大体意思就鼓励大家使用qobject_cast而非dynamic_cast。xxx_cast<TA>(TB),转换是否成功主要看TA/TB是否在一个类继承体系中,TB是否是TA相同类型或者子类。dynamic_cast依赖RTTI类判断,而qobject_cast依赖QMetaObject信息来判断。下面来看看源代码吧: // */src/corelib/kernel/qmetaobject.cpp ...
qobject_cast()函数的行为与标准C ++ dynamic_cast()相似,其优点是不需要RTTI支持,并且可以跨动态库边界工作。 如果您有QObject,那么它很好并且很有用,但是如果您想从QObject中获得它,那么就不值得从QObject继承。 此外,对于QGraphicsIems,还有qgraphicsitem_cast,它应该完全按照您的要求进行:)您必...
通过从 QObject 派生并使用 Q_OBJECT 宏添加的功能是使用 qobject_cast 的能力。 例: class myObject : public QObject { Q_OBJECT //... }; QObject* obj = new myObject(); 要检查 obj 是否是 myObject 类型并将其转换为 C++,你通常可以使用 dynamic_cast 。这取决于在编译期间启用 RTTI。 另一方...
//#define CAST(obj, clazz) (obj->to##clazz())#elifdefined(Q_CAST)#defineCAST(obj, inf) (qobject_cast<inf*>(obj))#else#defineCAST(obj, inf) (dynamic_cast<inf*>(obj))#endif#defineINTERFACE_CONSTRUCTOR(inf) inf(NApplicationElement* upcast) : NModelInterface(upcast) { }classN...
Wrap qobject_cast similar to dynamic_cast.Riateche added this to the Milestone 1 milestone Dec 2, 2016 Riateche self-assigned this Dec 2, 2016 Riateche added the type: feature label Feb 27, 2019 Sign up for free to join this conversation on GitHub. Already have an account? Sign in...