La bonne façon de vérifier la classe dérivée de QObject type dans Qt
Permet de dire que j'ai deux classes:
class A : public QObject {};
class B : public QObject {};
puis-je aller
QObject *a = new A();
QObject *b = new B();
maintenant, comment 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 un meilleur moyen?
OriginalL'auteur ak. | 2009-10-08
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
qobject_cast<MyClass*>(instance)
sur QObject classes dérivées et vérifier la valeur de retour. Siinstance
ne peut pas être lancé àMyClass*
, la valeur de retour sera NULL.OriginalL'auteur erelender