news 2026/4/16 9:00:51

自定义类或结构体-–-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/4/15 7:39:36

Python学习第一天:保留字和标识符

Python学习第一天:保留字和标识符的技术文章大纲 保留字的概念与作用 解释保留字的定义及其在Python中的重要性 列出Python中所有保留字(如if, else, for, def等) 说明保留字不可用作变量名或标识符的原因 标识符的定义与命名规则 标识符…

作者头像 李华
网站建设 2026/4/2 14:10:34

“全球创始人IP+AI万人高峰论坛”AI赋能IP创新增长成行业共识

2025年11月22日至25日,由创客匠人主办的 “全球创始人IPAI万人高峰论坛” 在厦门海峡大剧院成功举办。作为第三届创始人IP万人大会,本次活动汇聚了张琦、于丹、吴世春、严伯钧、恽为民、叶旭东等众多行业领军人物,以及来自全球的10000余名创始…

作者头像 李华
网站建设 2026/4/15 10:01:56

Java计算机毕设之基于springboot的人才求职招聘平台设计与实现基于JavaWeb的心聘求职平台的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/16 1:28:46

Scikit-Learn实战从入门到落地的机器学习全流程

Scikit-Learn(简称sklearn)是Python生态中最主流的机器学习库,基于NumPy、SciPy和Matplotlib构建,封装了分类、回归、聚类、降维、模型评估等全套机器学习功能,兼具易用性和灵活性。本文从实战角度出发,覆盖…

作者头像 李华
网站建设 2026/4/16 7:13:21

从日志混乱到清晰溯源,私有化Dify系统排障提速5倍的秘密武器

第一章:从日志混乱到清晰溯源,私有化Dify系统排障提速5倍的秘密武器在私有化部署的Dify系统中,随着模块增多与调用链路复杂化,传统分散式日志记录方式已无法满足高效排障需求。开发与运维团队常面临“问题难复现、根源难定位”的困…

作者头像 李华