可以说我有两个班:
class A : public QObject {};
class B : public QObject {};
Run Code Online (Sandbox Code Playgroud)
那我去
QObject *a = new A();
QObject *b = new B();
Run Code Online (Sandbox Code Playgroud)
现在,我如何确保"a"是A类的实例,而"b"是B类的实例?
目前我这样做:
if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
ere*_*der 33
您可以qobject_cast<MyClass*>(instance)在QObject派生类上使用并检查返回值.如果instance无法转换为MyClass*,则返回值将为NULL.