可以说我有一个两类:

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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top