문제

두 가지 수업이 있다고 가정 해 봅시다.

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입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top