Die richtige Art und Weise QObject zu überprüfen abgeleiteten Klassentyp in Qt

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

  •  20-09-2019
  •  | 
  •  

Frage

Lets sagen, ich habe eine zwei Klassen:

class A : public QObject {};
class B : public QObject {};

dann gehe ich

QObject *a = new A();
QObject *b = new B();

Nun, wie ich sicher, dass „a“ ist eine Instanz der Klasse A, und „b“ ist eine Instanz der Klasse B?

zur Zeit ich etwas tun, wie folgt aus:

if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...

Gibt es einen besseren Weg?

War es hilfreich?

Lösung

Sie können mit qobject_cast<MyClass*>(instance) auf QObject Klassen abgeleitet und überprüfen Sie den Rückgabewert. Wenn instance nicht MyClass* gegossen werden kann, wird der Rückgabewert NULL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top