【发布时间】:2011-10-15 22:23:32
【问题描述】:
这纯粹是一个理论问题,我知道如果有人将方法声明为私有,您可能不应该调用它。我设法调用私有虚拟方法并更改实例的私有成员,但我不知道如何调用私有非虚拟方法(不使用__asm)。有没有办法获得指向方法的指针?还有其他方法吗?
编辑:我不想更改类定义!我只想要一个黑客/解决方法。 :)
【问题讨论】:
-
从同一个类的公共函数中调用私有方法
-
你是如何做到没有编译错误的?
-
有了地址...你可以通过知道你的实例的地址来获取虚拟表和成员的地址。
-
顺便说一句,不是你不应该叫它,只是你一定不能。
-
@Luchian:C++ 对虚拟表一无所知。如果你想在这里搞乱指针运算,那么你就处于高度特定于实现的领域。
标签: c++