作为参数传递给静态函数时,是否可以通过this调用类函数?

这是在类Foo中调用函数的方式

Foo::Bar(this, NULL);


这就是我想通过在参数结构中传递this来调用它的方式:

void Foo::someFunction()
{
    BarArgs barArgs;
    barArgs.context = this;
    ...
    Retry(barArgs);
}

static void Retry(LPVOID args)
{
    BarArgs *pstBarArgs = (BarArgs *)args;
    (pstBarArgs->context)->Bar(pstBarArgs->context, NULL);
}

最佳答案

如果要在args中将BarArgs用作指向Retry的指针,则必须在调用它时传递变量的地址,如下所示:Retry(&barArgs);

然后就可以了。

关于c++ - 通过此指针从静态函数调用类函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27256401/

10-11 21:09