一个自定的dynamic_cast设计
一个运行时检查的自设计dynamic_cast转换系统:
- 包含2个预编译宏,CnDeclareRootRTTI 和CnDeclareRTTI, 宏的目的只是为了生成对应的代码, 实际手法和直接在类里码代码是一样意思;
- 一个简单的RTTI类型,每个基类和派生类将会自带一个RTTI的实例属性: ms_RTTI, RTTI类如下:
直接上脑图, 文字真是描述好费劲。
RTTI</img>
自定义的dynamic_cast是:
使用
Creature* ca = MyDynamic_cast(Creature, pMonster_A);