Подтвердить что ты не робот

Правильный способ проверки класса QObject класса в Qt

Допустим, у меня есть два класса:

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

тогда я иду

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

теперь, как я могу убедиться, что "a" - это экземпляр класса A, а "b" - это экземпляр класса B?

в настоящее время я делаю что-то вроде этого:

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

есть ли лучший способ?

4b9b3361

Ответ 1

Вы можете использовать qobject_cast<MyClass*>(instance) для производных классов QObject и проверить возвращаемое значение. Если instance нельзя отнести к MyClass*, возвращаемое значение будет NULL.