将带参数的回调函数作为参数传递给其他函数

时间:2015-03-20 17:06:07

标签: c++ callback argument-passing

我有这个:

// Call back function take string argument by ref.
typedef void (*Callback)(string&);

我也有这个:

// Function that take Callback as an argument
void need_a_callback (Callback func) {

    // Do something

}

将被回调的功能:

void modify(string& text) {

    text = "";

}

现在,我如何将modify传递给need_a_callback

1 个答案:

答案 0 :(得分:1)

回调是函数指针。所以你传递像指针一样的回调。

结果如下:

need_a_callback(modify);

然后,在need_a_callback()中,你可以这样调用你的回调:

// Function that take Callback as an argument
void need_a_callback (Callback func) {

    String text = "my text";
    func(text);

}