Reputation: 3449
Lets say I have a two classes:
class A : public QObject {};
class B : public QObject {};
then I go
QObject *a = new A();
QObject *b = new B();
now, how do I make sure that "a" is an instance of class A, and "b" is an instance of class B?
currently I do something like this:
if (a->inherits(A::staticMetaObject.className())) {
...
} else if (a->inherits(A::staticMetaObject.className())) {
...
is there a better way?
Upvotes: 19
Views: 25023
Reputation: 6305
You can use qobject_cast<MyClass*>(instance)
on QObject derived classes and check the return value. If instance
cannot be cast to MyClass*
, the return value will be NULL.
Upvotes: 38