#define OBJECT_HEADER(derivedClass) 如何对RTTI有帮助?

superwavelet superwavelet 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
说是这样定义macro对RTTI有帮助:

在 Base.h 文件里面定义基类:

class Base{

...
};

然后:
#define OBJECT_HEADER(derivedClass) \
public: \
virtual SharedPtr<Base> _virtualClone() const; \
SharedPtr<derivedClass> _clone() const; \
static Base* createInstance (); \
static const Type& classTypeID (); \
virtual const Type& type() const; \
static void constructType(); \
static void destructType();

说明是这样的:
The code comment says that OBJECT_HEADER Helps build the Run-Time Typing Information (RTTI) for the given class derivedClass. This macro is required in the class definition of any class derived from Base or its derivatives.

Thus, in the example usage:

class derivedClass: public Base
{
OBJECT_HEADER(derivedClass)

public:
...

};


不明白这个宏定义怎么帮助RTTI, 并且, 事实上没看懂这个宏定义,一个字符串,预编译器怎么知道分解里面的函数比如:createInstance 这个函数在宏的字串里面。

同时,在Base.h这个文件里面 createInstance 没有定义在类里面,而是作为自由函数:
inline SharedPtr<Base> createInstance(const Type* pType)  { return pType->createInstance(); }
...全文

相关推荐

【工业自动化】欧姆龙PLC产品线与编程软件应用:从选型架构到调试排错的全流程技术指南

内容概要:本文《欧姆龙PLC与编程软件完全手册》系统介绍了欧姆龙PLC的产品架构、软件体系、通信协议、选型策略及编程调试技巧。重点区分了两大技术平台:基于CX-Programmer的传统C系列(CP/CJ/CS)与基于Sysmac Studio的新一代Sysmac平台(NJ/NX/NY),强调二者在软件生态、寻址方式和通信架构上的根本差异。手册详细对比了各系列PLC的性能参数,并提供与西门子产品的功能对标,帮助用户快速定位。深入讲解了编程操作中的关键问题,如任务结构设计、间接寻址、FB封装陷阱、在线调试五件套等,特别指出“FB使能关闭时状态不初始化”等易出错点。最后汇总了选型路径与现场避坑清单,极具实战指导价值。; 适合人群:具备一定工业自动化基础,从事PLC编程、设备调试、系统集成的研发工程师和技术人员,尤其是从西门子平台转向欧姆龙或参与新项目选型的1-5年经验从业者。; 使用场景及目标:① 新项目选型时判断应选用C系列还是Sysmac平台;② 编程调试过程中掌握高效操作技巧与常见问题排查方法;③ 实现跨平台迁移、系统升级或接手他人项目时规避架构与逻辑陷阱;④ 提升对欧姆龙PLC任务机制、间接寻址、FB设计等高级功能的理解与应用能力。; 阅读建议:本手册理论结合实践,建议按“先架构后操作”的顺序阅读,重点章节需结合实际工程反复演练。特别是FB设计规范、任务切换处理、强制操作收尾流程等内容,应在仿真环境中验证后再应用于现场。注意版本匹配问题,操作前确认所用软件与控制器固件版本兼容。

莫问西东LJ

CISP-CSE注册云安全工程师备考资源包

CISP-CSE注册云安全工程师备考资源包

嫑甭歪孬

科技中介服务机构如何通过AI技术降低技术评估与匹配服务的操作门槛?.docx

科技中介服务机构如何通过AI技术降低技术评估与匹配服务的操作门槛?

BIZKEEN

国央企创新负责人如何借助平台实现创新资源的高效配置与项目落地?.docx

国央企创新负责人如何借助平台实现创新资源的高效配置与项目落地?

BIZKEEN

高校技术转移办公室人员如何高效筛选并推介科技成果?.docx

高校技术转移办公室人员如何高效筛选并推介科技成果?

BIZKEEN
评论 3
收藏 已收藏
分享
返回顶部
superwavelet
C++ 语言 65,214 成员 250,514 内容