c++回调就像在java中一样

标签 c++ function callback

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

像这样:

int main(void) {

    ...

    myButton->addOnClickCallback(new myCallback(){

        // do some stuff.
    });

    return 0;
}

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

最佳答案

您进一步使用 C++11 中的 lambdas:

myButton->addOnClickCallback([](){

   // do some stuff.
});

这是唯一直接的方法。

如果这不可用,在其他解决方案中,您可以传递一个指向函数的指针,该函数由 & 运算符(不是必需的)获取,而不是 new。其次,该函数必须在 main 之外定义:

myCallback() {
    // do some stuff.
}

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

关于c++回调就像在java中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33835818/

相关文章:

c++ - 如何使用 decltype 获取某些类类型的成员函数的地址?

javascript - 使用步骤/组创建表单的问题

flutter - 如何在Dart/Flutter中声明一个接受多个参数的函数回调?

javascript - 如何在nodejs中执行并行查询?

java - android java,正则表达式条件替换匹配的子内容(如javascript的str.replace(pattern,function(){})

c++ - 显示QList内容

c++ - 使用 map.end() 访问 map 的最后一个元素

c++ - 在c++中使用相同的fstream对象进行读写时是否存在任何错误诱导特征

python - Python 中带有列表的未解析引用

javascript - 如何防止onload一直运行?