设为首页 加入收藏

TOP

C++实现反射
2014-11-12 19:00:11 】 浏览:5604
Tags:实现 反射

  设计模式里面反射用的很多,还有.Net,java里面反射机制已经很成熟了,而C++貌似一直没有要支持反射的迹象


  试着自己想想解决办法,首先想到的就是利用工厂模式,很简单,利用一个字符串 new出相应的对象,代码大概是这样的


  if(className == "A")


  {


  return new A();


  }


  一般来说是可以实现了,可是如果要实现反射的对象非常多,这个工厂类就会非常大而且很可能要写好几个这样的工厂类,而且一些简单对象,是使用这样的方式很不方便。


  于是考虑到其实反射就是用一个字符串或者类似的东西new出一个对象 如果我们可以写一个类似new ClassName的函数就行了,于是立刻想到了宏,比如说


  如下定义:


  #define NEW_OBJECT(ClassName) new ClassName;


  然后使用:


  Obj* c = NEW_OBJECT(Obj);


  就能够实现反射了


  当然也可以把宏定义成函数的形式;


  网上搜了下,大概也都比较认可这样的方法,还有个说用回调函数指针实现的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计算机二级C++辅导:旋转锁 下一篇c++文件流基本用法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目