Qtの中でQObjectの派生クラスの種類を確認するための適切な方法

StackOverflow https://stackoverflow.com/questions/1537080

  •  20-09-2019
  •  | 
  •  

質問

私は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)を使用して、戻り値をチェックすることができます。 instanceMyClass*にキャストできない場合は、戻り値はNULLになります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top