[英]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_cast
與static
變量無關。 在常規強制轉換與static_cast與dynamic_cast中進行了解釋,其中static_cast
可用於將隱式轉換轉換為void指針。
本質上foo指向myStruct,而無法訪問myStruct的實例嗎?
不, foo
不是“指向”任何東西。 foo
是綁定到pThis
取消引用的對象的引用。 foo
可以像(*pThis)
一樣調用成員方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.