c++的反射机制

Coder李海波 小米 研发工程师  2008-03-12 11:54:40
比如我有一个类:
public class UserMgr
{
public bool login(string userName,string password);
}

给定一个字符串,如
Class=UserMgr
Method=login
Parameters=marising,123456

根据给定的字符串,能实例化UserMgr,并能调用login函数,传入参数marising,123。

类似,c#或者Java中的反射机制。
...全文
740 点赞 收藏 43
写回复
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
yykk601 2009-01-15
运行时类型识别库
回复
Coder李海波 2008-04-01
C++ Reflection for High Performance Problem Solving Environments
http://www.cs.indiana.edu/~tdevadit/pubs/cpprefl_hpc07.pdf
回复
晨星 2008-03-31
还有.exe。
回复
晨星 2008-03-31
首先,你是要反射啥东西来获得类信息?是.h,.cpp,.lib,.dll,.obj,.so还是.a?
回复
Skt32 2008-03-31
仿COM
回复
Skt32 2008-03-31
写一个GetInterface()函数,在被调用时用传来的参数列表实例化你的那个类并返回对象指针,然后用对象指针进行工作
回复
WuBill 2008-03-31
Mark下,回头研究下,感觉LZ说的场景象C#里的代理
回复
Coder李海波 2008-03-26
to michney
第三,有成熟的双接口和automation来解决。
哥们,能详细一点么?

to Vitin
非常感谢
回复
antimatterworld 2008-03-20
[Quote=引用 34 楼 michney 的回复:]
我的项目里曾经用到过一个依赖注入的需求,最后实现是一个哥们用汇编,和C++来实现的
[/Quote]

哥们很好很强大...
回复
dead_of_winter 2008-03-13
要搞清楚语言的思想 不要总是向语言提要求
回复
redleaves 2008-03-13
C++里搞这些比较麻烦...
通常,这种机制用在C++里只会给自己增加负担.
如果要用,就只能像COM那样,搞个类厂,再搞个类似dispatch的机制....
回复
andyhooo 2008-03-13
按名字实例化可以用工厂方法模式解决
动态调用某函数可以参考IDispatch的实现
回复
星羽 2008-03-13
up
回复
lexchou 2008-03-13
按名字实例化可以用工厂方法模式解决
动态调用某函数可以参考IDispatch的实现
回复
egxsun 2008-03-13
需要根据Request的内容,调用不同的函数
-------------------------------
可以用函数指针
回复
z_kris 2008-03-13
能否用trait试试?
回复
antimatterworld 2008-03-13
MFC里面有个动态创建,类似Java的反射机制.
//DECLARE_DYNCREATE
//IMPLEMENT_DYNCREATE

这2个宏好象实现了C++的"反射机制"
回复
michney 2008-03-13
我也觉得这东西,没有实用价值
首先,C++的需求变更并不像java,c#那样频繁,需要依赖注入容器,反射来解决
第二,C++实现反射效率低下,无论是执行,还是开发。
第三,有成熟的双接口和automation来解决。

我的项目里曾经用到过一个依赖注入的需求,最后实现是一个哥们用汇编,和C++来实现的
回复
yixiao386 2008-03-13
别用古汉语去写微积分
回复
Jeffrey84 2008-03-13
可以肯定,反射很消耗性能.
回复
发动态
发帖子
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
社区公告
暂无公告