c++如何对自己创建的函数添加回调函数在类中实现
时间: 2024-10-22 09:25:02 浏览: 18
在C++中,你可以通过将函数指针作为成员函数的参数或者返回值,来实现对自定义函数的回调。这里有两个常见的方法:
1. **通过函数指针作为参数**:
```cpp
class MyClass {
public:
void setCallback(void (*callback)(int arg)) {
myCallback = callback; // 将回调函数存储在一个成员变量中
}
void callBackHandler(int arg) {
if (myCallback) {
myCallback(arg); // 当有回调时,调用这个函数
}
}
// 可能的用户提供的回调函数
static void customCallback(int arg) {
// 这里执行具体的回调操作
}
private:
void (*myCallback)(int);
};
```
2. **通过lambda表达式或std::function**:
如果你在C++11及以上版本,可以使用lambda表达式或者`std::function`模板:
```cpp
class MyClass {
public:
void setCallback(std::function<void(int)> callback) {
callback_ = callback;
}
void callBackHandler(int arg) {
callback_(arg); // 调用存储的函数
}
private:
std::function<void(int)> callback_;
};
void userFunction(int arg) {
// 用户的回调函数
}
MyClass obj;
obj.setCallback(userFunction);
```
阅读全文