通过此指针从静态函数调用类函数

时间:2014-12-02 18:26:52

标签: c++

当作为参数传递给静态函数时,是否可以通过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);
}

1 个答案:

答案 0 :(得分:0)

如果您想在args中引用BarArgs作为指向Retry的指针,则必须在调用时传递变量的地址:Retry(&barArgs);

然后它应该工作正常。