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)

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值