题
可以说我有一个两类:
class A : public QObject {};
class B : public QObject {};
然后我去
QObject *a = new A();
QObject *b = new B();
现在,我该如何确保“一”是A类的实例,而“B”是B类的一个实例?
目前我做这样的事情:
if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...
是有更好的方法?
解决方案
可以使用对QObject的派生类qobject_cast<MyClass*>(instance)
并检查返回值。如果instance
不能转换为MyClass*
,返回值将是NULL。
不隶属于 StackOverflow