《QT从基础到进阶·三十四》qobject_cast动态强制转换

简介: 《QT从基础到进阶·三十四》qobject_cast动态强制转换

qobject_cast()对QObject类执行动态强制转换。

qobject_cast()函数的行为类似于标准c++ dynamic_cast(),但执行速度比dynamic_cast 更快,且不需要C++的RTTI 的支持,但qobject_cast 仅适用于QObject 及其派生类

如果对象的类型正确(在运行时确定),则返回一个非零指针,如果对象的类型不兼容则返回0

条件:

强制转换的类型(比如AddInInterfaceBase)必须继承QOBject,要有Q_OBJECT宏

案例:

子类继承了父类的age值并进行了修改,把子类转成父类后可用拿到子类中修改的值,注意和多态有区别。


相关文章
|
缓存 Windows
Windows程序设计——LoadImage参数及其用法
Windows程序设计——LoadImage参数及其用法
412 0
|
2月前
|
编译器 Linux API
Qt之Q_OBJECT 宏的神奇之旅(二)
Qt之Q_OBJECT 宏的神奇之旅
33 0
|
2月前
|
安全 Java 编译器
Qt之Q_OBJECT 宏的神奇之旅(一)
Qt之Q_OBJECT 宏的神奇之旅
39 0
|
6月前
|
设计模式
《QT从基础到进阶·三十二》Q指针和D指针用法
《QT从基础到进阶·三十二》Q指针和D指针用法
82 0
|
6月前
《QT从基础到进阶·一》QString字符串常用方式
《QT从基础到进阶·一》QString字符串常用方式
57 0
|
6月前
《QT从基础到进阶·三》信号槽关联类型Connection,DirectConnection,QueuedConnection,BlockingQueuedConnection
《QT从基础到进阶·三》信号槽关联类型Connection,DirectConnection,QueuedConnection,BlockingQueuedConnection
74 0
|
12月前
计算机高职专业VB知识要点004 VB基础知识,符号\/:;&等与函数区分,常用数据类型,dim与static及强制声明
计算机高职专业VB知识要点004 VB基础知识,符号\/:;&等与函数区分,常用数据类型,dim与static及强制声明
|
JavaScript
学习TypeScrip12(never类型)
差异2 当我们鼠标移上去的时候会发现 只有void和number never在联合类型中会被直接移除
50 0
|
缓存 Windows
Windows程序设计——WNDCLASS结构参数及其用法
Windows程序设计——WNDCLASS结构参数及其用法
306 0
|
C语言
QT软件开发: 重载QGraphicsItem的type()函数
QT软件开发: 重载QGraphicsItem的type()函数
645 0
QT软件开发: 重载QGraphicsItem的type()函数