《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值并进行了修改,把子类转成父类后可用拿到子类中修改的值,注意和多态有区别。


相关文章
|
8月前
|
安全 程序员 编译器
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
【C/C++ 泛型编程 进阶篇 Type traits 】C++类型特征探究:编译时类型判断的艺术
604 1
|
5月前
|
JavaScript Java Go
【Qt】Qt编程注意事项
【Qt】Qt编程注意事项
|
7月前
|
C语言
C语言学习记录——枚举(定义、与结构体的区别、优点)
C语言学习记录——枚举(定义、与结构体的区别、优点)
75 3
|
8月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(下)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
33 1
|
8月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(中)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
36 0
|
8月前
|
编译器 C语言 C++
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)(上)
从C语言到C++⑤(第二章_类和对象_中篇)(6个默认成员函数+运算符重载+const成员)
31 0
|
设计模式
《QT从基础到进阶·三十二》Q指针和D指针用法
《QT从基础到进阶·三十二》Q指针和D指针用法
451 0
《QT从基础到进阶·一》QString字符串常用方式
《QT从基础到进阶·一》QString字符串常用方式
150 0
《QT从基础到进阶·三》信号槽关联类型Connection,DirectConnection,QueuedConnection,BlockingQueuedConnection
《QT从基础到进阶·三》信号槽关联类型Connection,DirectConnection,QueuedConnection,BlockingQueuedConnection
259 0
计算机高职专业VB知识要点004 VB基础知识,符号\/:;&等与函数区分,常用数据类型,dim与static及强制声明
计算机高职专业VB知识要点004 VB基础知识,符号\/:;&等与函数区分,常用数据类型,dim与static及强制声明

热门文章

最新文章

下一篇
开通oss服务