回调函数是一种函数,通常是由某个程序库或框架调用的,以处理某些事件或完成某些操作。它的实现方式通常是将回调函数的指针传递给调用方,然后由调用方在适当的时候调用该回调函数。回调函数通常用于处理异步操作或事件驱动程序设计。
#include <iostream>
// 回调函数类型
typedef void (*callback_func)(int);
class MyClass {
public:
MyClass(int value) : m_value(value) {}
// 设置回调函数
void setCallback(callback_func func) {
m_callback = func;
}
// 调用回调函数
void invokeCallback() {
if (m_callback) {
m_callback(m_value);
}
}
private:
int m_value;
callback_func m_callback;
};
// 回调函数实现
void myCallback(int value) {
std::cout << "Callback: " << value << std::endl;
}
int main() {
MyClass obj(123);
// 设置回调函数
obj.setCallback(myCallback);
// 调用回调函数
obj.invokeCallback();
return 0;
}
在上面的示例中,MyClass 类包含一个整数成员变量 m_value 和一个回调函数指针成员变量 m_callback。通过调用 setCallback 方法,可以将回调函数的指针传递给 MyClass 对象。通过调用 invokeCallback 方法,可以在适当的时候调用回调函数,此时回调函数会被异步地调用,并传递一个整数参数给它。在本例中,回调函数 myCallback 仅仅打印传递给它的整数参数。