/** * @file XNObject.h * @author jinchao * @brief 基础对象类 * @version 1.0 * @date 2025-01-08 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include #include #include #include "XNCore_global.h" #include "XNLogger.h" class XNObjectPrivate; /** * @brief 基础对象类 */ class XNCORE_EXPORT XNObject : public QObject { /** * @brief 宏定义,用于支持Qt的元对象系统 */ Q_OBJECT /** * @brief 宏定义,用于禁用拷贝构造函数 */ Q_DISABLE_COPY(XNObject) /** * @brief 宏定义,用于声明私有数据成员 */ Q_DECLARE_PRIVATE(XNObject) /** * @brief 宏定义,用于声明属性uniqueId */ Q_PROPERTY(quint32 UniqueId READ getUniqueId WRITE setUniqueId) public: /** * @brief 构造函数 * @param parent 父对象 */ explicit XNObject(QObject *parent = nullptr); /** * @brief 析构函数 */ virtual ~XNObject(); /** * @brief 获取唯一ID * @return 唯一ID */ quint32 getUniqueId(); /** * @brief 设置唯一ID * @param uniqueId 唯一ID */ void setUniqueId(const quint32 &uniqueId); protected: /** * @brief 构造函数 * @param dd 私有数据成员 * @param parent 父对象 */ XNObject(XNObjectPrivate &dd, QObject *parent = nullptr); protected: /** * @brief 私有数据成员 */ XNObjectPrivate *d_ptr; };