C++实现反射(Reflection)

本文介绍了作者如何在C++中实现类似于.NET平台的反射功能。通过特定的宏定义,作者能够在运行时获取和调用类的方法,为C++代码带来了更大的灵活性。尽管过程比.NET的反射机制更复杂,但作者计划进一步完善并将其集成到自己的项目中。
摘要由CSDN通过智能技术生成

C++实现Reflection

最近1年多,我一直在琢磨和大量使用cli来开发游戏项目,.net系统的反射系统给我
的开发设计思路,带来了很大的冲击。反射真的可以从根本上,让设计思路相对传统
开发模式有很大的改变。
但是反射通常都提供在类似java等动态语言上,后来ms在.net平台上推出了一个很强
大完善的反射机制,我最近1年多的项目都是大量使用他,为我的项目开发,做出了很
多有意思的东西。但是我的victory3d的core因为效率原因,依然是采用纯C++开发,
享受不到.net平台的便利。不少人在呼吁C++标准组织,给C++添加上反射特性,但是
据我所知C++0x规范目前也就能搞一个gc什么的,对于reflection的支持,还不知道要
什么时候。
于是,我决定自己尝试实现一下在c++中,实现reflection,经过2天试验,目前基本
达成实际目标,下面是一个我的c++反射一个class的例子:

 ///<ReflectExport name="MyTestClass"/>
 class testclass : public VReflectBase
 {
 public:
  ///<ReflectExport/>
  void fun0()
  {
   return;
  }
  ///<ReflectExport/>
  int fun1(float a)
  {
   return 0;
  }

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值