Question

Disons que j'ai deux classes:

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

je vais

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

maintenant, comment puis-je faire en sorte que « a » est une instance de la classe A, et « b » est une instance de la classe B?

actuellement je fais quelque chose comme ceci:

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

est-il une meilleure façon?

Était-ce utile?

La solution

Vous pouvez utiliser qobject_cast<MyClass*>(instance) sur les classes dérivées QObject et vérifier la valeur de retour. Si instance ne peut pas être jeté à MyClass*, la valeur de retour sera NULL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top