Qtの中でQObjectの派生クラスの種類を確認するための適切な方法
質問
私は2つのクラスを考えてみましょう。
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