【发布时间】:2020-09-17 06:51:44
【问题描述】:
奇怪的转换问题
为了节省时间,我将直接跳到问题。
虽然在我的一个返回函数中,我通过使用这样的语句来设置引用:
示例:using T = int( __thiscall* )( void* );
现在,在这个语句中,我有一个返回值,它会从返回引用类型指针中收集一个偏移量:
示例:return ( *reinterpret_cast< T** >( this ) )[0X0]( this );
当我使用我的 using 语句使用引用时,操作返回成功,我的函数将正常工作。但是,当不使用该语句并评估参考本机时,我的编译器会向我抛出一些标记,说明它无法处理。
我正在尝试做的示例:return ( *reinterpret_cast< int( __thiscall* )( void* )** >( this ) )[0X0]( this );
是我遗漏了什么,还是这不可能?
【问题讨论】:
-
是什么让
this变成T**成为可能?为什么this是一个指向函数指针的指针? (不是说错,只是说明一个解释会让一切更清楚) -
哦,这些都是类内部的设置返回,看起来像:class example { function_example( ) { reference;返回; });
标签: c++ pointers casting reinterpret-cast