Pergunta

Digamos que eu tenha duas aulas:

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

então eu vou

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

Agora, como faço para garantir que "A" seja uma instância de classe A, e "B" é uma instância da Classe B?

Atualmente eu faço algo assim:

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

Existe uma maneira melhor?

Foi útil?

Solução

Você pode usar qobject_cast<MyClass*>(instance) Nas classes derivadas do QObject e verifique o valor de retorno. Se instance não pode ser lançado para MyClass*, o valor de retorno será nulo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top