QT에서 Qobject 파생 클래스 유형을 확인하는 적절한 방법
문제
두 가지 수업이 있다고 가정 해 봅시다.
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())) {
...
더 좋은 방법이 있습니까?
해결책
당신이 사용할 수있는 qobject_cast<MyClass*>(instance)
Qobject 파생 클래스에서 반환 값을 확인하십시오. 만약에 instance
캐스트 할 수 없습니다 MyClass*
, 반환 값은 null입니다.
제휴하지 않습니다 StackOverflow