簡體   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