【发布时间】:2014-09-02 11:08:40
【问题描述】:
如果这是一个愚蠢的问题,请原谅,但我无法理解以下代码:
struct myStruct
{
static void func1(const event, void* pthis)
{
myStruct& foo = *static_cast<myStruct*>(pthis);
if(event.action != ...).... return;
if(event.action == ...) foo.func2();
}
void func2()
{}
}
所以... pthis 被强制转换为 myStruct 类型的静态指针?这是否意味着 foo 的类型为“对 myStruct 的引用”,并且等于 pthis 指向的值。
本质上 foo 指向 myStruct,而无法访问 myStruct 的实例?
我真的不明白...
【问题讨论】:
-
*static_cast在转换后确实取消引用 -
为什么
func1()不接受myStruct的引用?这个设计的目的是什么……我的脑袋实在想不通:(