Domanda

Diciamo che ho un due classi:

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

poi vado

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

Ora, come faccio a fare in modo che "a" è un'istanza della classe A, e "b" è un'istanza di classe B?

Al momento faccio qualcosa di simile a questo:

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

c'è un modo migliore?

È stato utile?

Soluzione

È possibile utilizzare qobject_cast<MyClass*>(instance) su QObject classi derivate e controllare il valore di ritorno. Se instance non può essere gettato al MyClass*, il valore di ritorno sarà NULL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top