带参数的JavaScript和C ++回调函数

时间:2014-01-22 05:02:29

标签: javascript c++ function callback

如何在C ++中实现以下JavaScript回调实现?以下内容摘自JavaScript代码段。我想实现相同的功能:

var playAdBreak = function(adbreak, callback) 
{
    var x;
    playSingle(x, function() { playAdBreak.call(this, adbreak, callback); });
};

var playSingle = function(abc, callback) 
{

};

2 个答案:

答案 0 :(得分:1)

如果您在C ++ 11环境下,则可以使用lambda std::function。下面的代码没有相同的功能,但它可以转换成如下所示,除了:C ++ lambda不是闭包,函数没有this

auto playSingle = [&](const T &abc, std::function<void()> callback) {

}

auto playAdBreak = [&](const Y &adbreak, std::function<void()) callback) {
  T x;
  playSingle(x, [=]() { playAdBreak(adbreak, callback); });
}

答案 1 :(得分:1)

我能想到的谦虚的做法是

void callBackDefinition()
{
    printf("I was called");
}

void callBackExecutor(void (*callBack))
{
    callBack();
}

main()
{
    callBackExecutor(&callBackDefinition);
    return 0;
}