在C++中,using 可以用来定义回调接口,类似于 typedef。这种方法可以使代码更简洁且易于理解。下面是一个使用 using 实现回调接口的示例
#include <iostream>
#include <functional>
// 使用 using 定义回调类型
using CallbackFunction = std::function<void(int, double)>;
// 示例回调函数
void exampleCallback(int a, double b) {
std::cout << "Callback with int: " << a << " and double: " << b << std::endl;
}
// 使用回调类型的类
class CallbackHandler {
public:
// 设置回调函数
void setCallback(CallbackFunction callback) {
this->callback = callback;
}
// 触发回调函数
void triggerCallback(int a, double b) {
if (callback) {
callback(a, b);
}
}
private:
CallbackFunction callback;
};
int main() {
CallbackHandler handler;
handler.setCallback(exampleCallback); // 设置回调函数
handler.triggerCallback(42, 3.14); // 触发回调函数
return 0;
}
- 定义回调类型: 使用 using CallbackFunction = std::function<void(int, double)> 来定义一个接受 int 和 double 参数且返回 void 的回调类型。
- 设置回调函数: setCallback 方法接受一个 CallbackFunction 类型的参数,将其保存到类的成员变量中。
- 触发回调函数: triggerCallback 方法调用保存的回调函数,传递必要的参数。