假设我有两个班级:
class A : public QObject {};
class B : public QObject {};
然后我去
QObject *a = new A();
QObject *b = new B();
现在,我如何确保“a”是A类的实例,而“b”是B类的实例?
目前我这样做:
if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...
有更好的方法吗?
答案 0 :(得分:32)
您可以在QObject派生类上使用qobject_cast<MyClass*>(instance)
并检查返回值。如果instance
无法转换为MyClass*
,则返回值将为NULL。