Gamasutra上有篇文章讲得挺细的: Sponsored Feature: Behind the Mirror - Adding Reflection to C++
RTTI
在Class声明后加入...RTTI宏的做法几乎快成各种引擎的标配了, 谁叫C++的rtti太弱来着....这些信息目前看到三种实现方法
使用工具/编译器中间信息等根据C++代码解析生成(Havok冒似是这种实现)....不推荐, 见原文
使用各种模板+宏像RTTI那样进行注册, 查询方便, 缺点是会增加启动时间和内存占用, 难于单步调试
使用访问者模式, 在需要查询信息时才创建, 编码比较灵活, 但是访问起来比较慢
一般都是记录成员变量相对于...实现的时候只接触过成员函数指针, 没想到还有个成员变量指针, C++真是博大精深
Enum和Container需要特殊对待
如果要反射到.net的PropertyGrid, 可以使用ICustomTypeDescriptor