回调函数可以使用类的成员函数吗,给我c++代码示例
时间: 2024-10-18 18:08:04 浏览: 22
vc++回调函数的用法
5星 · 资源好评率100%
回调函数确实可以在类的成员函数中使用。在C++中,你可以将一个成员函数作为参数传递给另一个函数,这就是所谓的“成员函数指针”或“函数对象”。下面是一个简单的例子:
```cpp
#include <iostream>
class MyClass {
public:
// 定义一个回调函数类型,用于接受两个整数并打印结果
using Callback = void(int a, int b);
// 成员函数作为回调
void setCallback(Callback callback) {
myCallback = callback;
}
// 调用回调
void callCallback(int x, int y) {
if (myCallback) {
myCallback(x, y); // 使用成员函数作为回调
}
}
private:
// 成员变量保存回调函数指针
Callback myCallback;
};
// 类外定义一个成员函数作为回调
void printResult(int a, int b) {
std::cout << "Result: " << a + b << std::endl;
}
int main() {
MyClass obj;
obj.setCallback(&printResult); // 将外部函数绑定到成员变量
obj.callCallback(5, 3); // 调用回调,并传入参数
return 0;
}
```
在这个例子中,`MyClass` 的 `setCallback` 函数接收一个回调函数类型的参数,并将其存储在内部。然后在 `callCallback` 中,当条件满足时,会调用这个回调函数。
阅读全文