繁体   English   中英

使用static_cast <>类型转换指针

[英]typecasting a pointer with static_cast<>

如果这是一个愚蠢的问题,请原谅,但我无法理解以下代码:

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的实例吗?

我真的不明白...

所以... pthis被强制转换为myStruct类型的静态指针了吗?

static_caststatic变量无关。 常规强制转换与static_cast与dynamic_cast中进行了解释,其中static_cast可用于将隐式转换转换为void指针。

本质上foo指向myStruct,而无法访问myStruct的实例吗?

不, foo不是“指向”任何东西。 foo是绑定到pThis取消引用的对象的引用。 foo可以像(*pThis)一样调用成员方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM