温馨提示×

C++函数对象怎样实现回调

c++
小樊
81
2024-11-09 05:26:32
栏目: 编程语言

在C++中,可以使用函数对象(也称为仿函数或functor)来实现回调。函数对象是一个类,它重载了()运算符,使其能够像函数一样被调用。要实现回调,你需要将一个函数对象作为参数传递给另一个函数,然后在适当的时机调用该函数对象。

下面是一个简单的示例,展示了如何使用函数对象实现回调:

#include <iostream>
#include <functional>

// 函数对象示例
class Callback {
public:
    void operator()(int value) const {
        std::cout << "Callback called with value: " << value << std::endl;
    }
};

// 接受回调函数对象的函数示例
void process(int value, const std::function<void(int)>& callback) {
    std::cout << "Processing value: " << value << std::endl;
    callback(value); // 调用回调函数对象
}

int main() {
    Callback myCallback; // 创建一个函数对象实例
    process(42, myCallback); // 将函数对象作为回调传递给process函数
    return 0;
}

在这个示例中,我们定义了一个名为Callback的函数对象类,它重载了()运算符。然后,我们定义了一个名为process的函数,它接受一个整数值和一个回调函数对象。在process函数中,我们首先处理整数值,然后调用回调函数对象。最后,在main函数中,我们创建了一个Callback实例,并将其作为回调传递给process函数。

0