الطريقة الصحيحة لتحقق QObject المستمدة نوع فئة في كيو تي

StackOverflow https://stackoverflow.com/questions/1537080

  •  20-09-2019
  •  | 
  •  

سؤال

ويتيح القول لدي فئتين:

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

وبعد ذلك أذهب

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

والآن، كيف يمكنني التأكد من أن "أ" هو مثيل لفئة A، و "ب" هو مثيل لفئة 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