QT6 源(16):存储 QT 里元对象的类信息的类 QMetaClassInfo 的类,只有两个成员函数 name()、value(),比元对象属性简单多了
(1)所在头文件 qmetaobject.h :
class Q_CORE_EXPORT QMetaClassInfo
{
private: //private 属性里包含了至关重要的数据成员的定义,放前面
struct Data {
enum { Size = 2 };
const uint * d; //包含了数组的起始地址
uint name () const { return d[0]; }
uint value() const { return d[1]; }
};
Data data;
const QMetaObject * mobj; //指向 QMetaObject 对象
friend struct QMetaObject; //声明友元类
public:
constexpr inline QMetaClassInfo() : // 无参构造函数
mobj(nullptr), data({ nullptr }) {}
const char *name () const; //返回类信息的名字
const char *value() const; //返回类信息的值
inline const QMetaObject *enclosingMetaObject() const
{ return mobj; } //返回本类里的数据成员 QMetaObject * 指针
};
Q_DECLARE_TYPEINFO(QMetaClassInfo, Q_RELOCATABLE_TYPE);
//这个宏是规定本类 QMetaClassInfo 的存储属性
(2)本类的这俩属性,只可以通过本类访问。无法通过 QObject 或 QMetaObject 类来访问。
(3)
谢谢