news 2026/2/28 17:05:32

自定义类或结构体-–-behaviac

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
自定义类或结构体-–-behaviac

原文

  • 在.h文件中,任意编写一个自定义的类或结构体,并用宏DECLARE_BEHAVIAC_STRUCT声明该类或者结构体为非虚类,如下代码所示:
structTypeTest2_t{intname;floatweight;boolbLive;DECLARE_BEHAVIAC_STRUCT(TypeTest2_t);};

上面的用法定义出来的TypeTest2_t在导出的元信息中为值类型(也即在导出的元信息中其值IsRefType为false),值类型可以在编辑器中设置其成员属性。与值类型对应的是引用类型,引用类型不会导出其成员属性,在编辑器中也不用配置其成员属性。

另外,宏DECLARE_BEHAVIAC_STRUCT也可以带2个参数,第一个参数为类型,第二个参数为true表示该类型用作为引用类型(也即导出元信息后其值IsRefType为true),否则不用第二个参数表示为值类型,如下代码所示:

DECLARE_BEHAVIAC_STRUCT(TypeTest2_t,true);
  • 在.cpp文件中,通过一系列宏注册该类或结构体自身的描述及其属性:
BEGIN_PROPERTIES_DESCRIPTION(TypeTest2_t){CLASS_DISPLAYNAME(L"测试结构体")CLASS_DESC(L"自定义结构体")REGISTER_PROPERTY(name);REGISTER_PROPERTY(weight).DISPLAYNAME(L”重量”);REGISTER_PROPERTY(bLive).DISPLAYNAME(L”是否活着”).DESC(L”存活状态”);}END_PROPERTIES_DESCRIPTION()
  • 在初始化注册(Register)的部分需要加上如下的代码,反注册(UnRegister)的部分添加相应UnRegister的代码。注意这部分Register/UnRegister的代码不是必须的,如果该类型没有用作par或者没有用作条件比较,就可以不需要。
behaviac::TypeRegister::Register<TypeTest2_t>(" TypeTest2_t ");behaviac::TypeRegister::UnRegister<TypeTest2_t>(" TypeTest2_t ");

更多细节可以参考behaviac组件C++源码库中btunittest工程的reflectionunittest.cpp文件中TypeTest2_t结构体相关的代码。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 23:02:30

Java面试Redis核心知识点整理!

大家都知道Redis的业务范围是非常广的,但是对于刚入行的小伙伴来说可能也就知道个缓存跟分布式锁。因为Redis的很多功能在一些小企业里,根本是用不到的,得等到并发量到了一定的程度,系统扛不住了,才会用到Redis那些高级…

作者头像 李华
网站建设 2026/2/27 15:19:15

9、数据足迹缩减:存储容量优化策略

数据足迹缩减:存储容量优化策略 1. 数据足迹缩减技术概述 在当今数字化时代,网络速度加快、存储容量增大,但在特定时间和预算内,需要移动、处理和存储的信息也更多。数据足迹缩减(DFR)技术应运而生,其重要性在于提高资源利用效率,满足服务需求。常见的DFR技术和方法包…

作者头像 李华
网站建设 2026/2/27 14:32:26

17、IT 领域的技术解析与服务洞察

IT 领域的技术解析与服务洞察 在当今数字化时代,数据的生成、处理和存储量达到了前所未有的高度。即使在经济危机期间,对数据处理、移动和存储的需求也在持续增长。因此,IT 组织需要在不增加成本和不影响服务交付的前提下,利用现有资源支持业务增长并提供新服务。以下将为…

作者头像 李华
网站建设 2026/2/28 13:53:23

卡顿监测原理

卡顿监测的核心是检测主线程是否被长时间阻塞,导致无法及时更新 UI。卡顿的本质帧率与刷新率iOS 屏幕刷新率:60Hz(ProMotion 120Hz)每帧理论时间:16.67ms(60Hz)或 8.33ms(120Hz&…

作者头像 李华
网站建设 2026/2/28 7:45:32

[创业之路-733]:CTO - 技术视野、商业理解力、领导力、团队间协作与沟通、团队管理:“技术的战略家 + 商业的合伙人 + 团队的教练”

作为首席技术官(CTO),其角色远不止技术专家,更是连接技术、商业与组织战略的关键枢纽。以下是针对CTO核心能力的详细解析:技术视野(Technical Vision)前瞻性判断:能够洞察行业技术趋…

作者头像 李华
网站建设 2026/2/27 17:47:16

手把手教你用大模型构建知识图谱:从零开始到实际应用的完整指南,小白也能秒变AI大神!

摘 要 针对档案编研成果开发利用不足的问题,提出融合领域本体与大模型的知识图谱构建框架,包含数据层、概念层、抽取层和图谱层,并以电力公司志为案例开展实证。通过文献调研与数据处理构建领域本体,选定大模型并设计提示词&#…

作者头像 李华