读书人

c++实现C#中的反射解决方案

发布时间: 2012-03-12 12:45:33 作者: rapoo

c++实现C#中的反射
c++实现C#中的反射,csdn的blog里的文章都已看过…不是很理想

[解决办法]
真要反射你就直接用C#编程,不要在C、C++里折腾反射
[解决办法]
就是你最好别这么想。
你连博客都看了,在怎么说也未必理想
[解决办法]
C++支持编译时绑定。
C++支持多态,也就是运行时绑定。

反射的意思我记得是运行后绑定。
楼主可否把博客地址发一下我看看。
什么个意思?
[解决办法]
真要用的话只能对有虚函数的对象取到java里的类似getClass()一类的效果。其他的还不是很清楚。但是我不理解楼主为何要这样用呢?还不如直接C#或者java。
[解决办法]
友情up
[解决办法]
c++编译后二进制文件里元数据少的可怜,如果想c++很好的支持反射,那么必须在元数据上下功夫~~
否则即使c++模仿出来的大部分情况下也是貌似而神离~~~~
不过dll函数的动态加载以及com中一些反射的特性,还是可以考虑的~~
如果lz的问题非反射不能很好的解决,那lz可以选择c# java python ...~~干吗要在c++这棵树上吊死~~~
事实已经证明c++并不是在任何领域都适用的~~~

一家之言,徒增笑耳~~~
[解决办法]

探讨

c++编译后二进制文件里元数据少的可怜,如果想c++很好的支持反射,那么必须在元数据上下功夫~~
否则即使c++模仿出来的大部分情况下也是貌似而神离~~~~
不过dll函数的动态加载以及com中一些反射的特性,还是可以考虑的~~
如果lz的问题非反射不能很好的解决,那lz可以选择c# java python ...~~干吗要在c++这棵树上吊死~~~
事实已经证明c++并不是在任何领域都……

[解决办法]
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为反射机制.

换句话说,c++要反射的话,成本比较高,都要自己去实现。 如,获取任意对象的指针,获取任意类中函数的指针等。
例如:
#define NEW(className) new className
#define MEN_FUNC(funcName, className) void className::(*funcName)()
[解决办法]
从上所诉,反射机制,如果要用c++实现的话,成本非常的高,因为c++没有像JAVA一样,有现成的。 一切都要自己完成。 但是我可以肯定的说,其他语言能实现的功能,c++也一定可以。 因为它是c++。
[解决办法]
帮 顶
[解决办法]
帮 顶
[解决办法]
探讨
帮 顶

[解决办法]
不顶不行啊。。。。。。
[解决办法]
这个要在module中存储关于类型的信息
[解决办法]
探讨
我只是想用C++简单的实现反射,更透彻的理解下反射的机制
但是大家为什么都说些不相干的回答……

[解决办法]
C++本来就不支持这个,你通过各种方法给“添加”的特性,最终都很难搞好的。
探讨
引用:
就是你最好别这么想。
你连博客都看了,在怎么说也未必理想


什么意思?不太明白……

[解决办法]
探讨

C++支持编译时绑定。
C++支持多态,也就是运行时绑定。

反射的意思我记得是运行后绑定。
楼主可否把博客地址发一下我看看。
什么个意思?

[解决办法]
楼主可以去看看Qt的QObject,它有一套反射机制,不过,在编译之前他有个工具程序会处理代码文件来生成元数据,还算灵活。
[解决办法]
不要瞎折腾
[解决办法]
反射我也曾经想自己用c++模拟一下,就是为了实现一些设计上的便利。。。

不过折腾了一番之后,发现使用C++实现的成本竟然非常的高…………

最后真成瞎折腾了~~~~LZ你了解反射机制之后,估计你也会有这样的感悟~

读书人网 >C++

热点推荐