C++反射简单示例代码

反射的概念:

指程序在运行时,访问、检测和修改它本身状态或行为的一种能力。

反射的作用

在计算机编程语言中,反射机制可以用来:

获取类型的信息,包括属性、方法
动态调用方法
动态构造对象
从程序集中获得类型


反射的缺点

性能:反射可以理解成是一种解释操作,这个过程总是要慢于直接调用的。当然,性能问题的程度是可以控制的,如果程序在很少涉及的地方使用,性能将不会是一个问题。
反射模糊了程序内部实际发生的事情,会比直接代码更加复杂。
缺点不能掩饰其优点,针对不同的场景使用合理的技术才是最高境界。

反射的使用场景

序列化(Serialization)和数据绑定(Data Binding)
远程方法调用(RMI)
对象/关系数据映射(O/R mapping)

 

转载:简单的C++反射机制实现:

https://blog.csdn.net/zhangyx_xyz/article/details/62238412

不过反射功能太简单,实际应用场景,还是没有使用公有方法简单,关键在于剥除了耦合性。

 

AGM::LibReflection: A reflection library for C++.

https://www.codeproject.com/Articles/8712/AGM-LibReflection-A-reflection-library-for-C

 

源码:

https://github.com/xingyuan1hao/Cplusplus_reflection

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值