我想知道是否有一种方法可以像在Java中那样在C++中实现回调?
更具体地说:在将回调函数传递给另一个函数时直接定义它。

像这样:

int main(void) {

    ...

    myButton->addOnClickCallback(new myCallback(){

        // do some stuff.
    });

    return 0;
}

我没有在C++中找到与此类似的东西,所以我想知道是否有可能。
为了方便起见,这会很好:)

最佳答案

您可以进一步使用C++ 11中的lambda:

myButton->addOnClickCallback([](){

   // do some stuff.
});

那是唯一的直接方法。

如果该方法不可用,则可以在其他解决方案中传递指向&运算符(不是必需)而不是new的函数的指针。其次,必须在main之外定义该函数:
myCallback() {
    // do some stuff.
}

int main (void) {
   myButton->addOnClickCallback(myCallback);
   return 0;
}

08-16 21:28