• 2008阅读
  • 1回复

QT中的反射,如何反射取得私成成员和变量 [复制链接]

上一主题 下一主题
离线jerrybaxia
 

只看楼主 倒序阅读 楼主  发表于: 2020-12-03
  1. QWidget *p = static_cast<QWidget *>(this);
  2.     const QMetaObject *metaObj = p->metaObject();
  3.     int propertyCnt = metaObj->propertyCount();
  4.     for ( int i = 0; i < propertyCnt; ++ i ) {
  5.         QMetaProperty oneProperty = metaObj->property( i );
  6.         qDebug() << " name: " << oneProperty.name() << " type: " << QVariant::typeToName( oneProperty.type()) << "\n";
  7.     }
  8.     //2.遍历类的函数成员
  9.     int methodCnt = metaObj->methodCount();
  10.     for ( int idx = 0; idx < methodCnt; ++ idx ) {
  11.         QMetaMethod oneMethod = metaObj->method( idx );
  12.         qDebug() << oneMethod.access() << " name: " << oneMethod.name()
  13.                  << " typeName: " << oneMethod.typeName()
  14.                  << " methodType: " << oneMethod.methodType() << "\n";
  15.     }

用以上方法没有办法获取得到 private 的私有变量和私有方法
那有哪个方法,可以获取我的一个类的私有变量和私有方法呢?
谢谢
离线lieber

只看该作者 1楼 发表于: 2020-12-03
写成友元函数行嘛。。。
快速回复
限100 字节
 
上一个 下一个