C++的回调函数怎么写
时间: 2024-03-21 17:15:49 浏览: 69
C++回调函数
5星 · 资源好评率100%
在C++中,回调函数通常是通过函数指针或者函数对象来实现的。下面分别介绍这两种方式的写法:
1. 函数指针方式
首先,定义一个函数指针类型,该类型定义了回调函数的参数类型和返回值类型:
```
typedef void (*CallbackFunc)(int);
```
然后,在需要使用回调函数的地方,通过一个指向回调函数的函数指针来执行回调函数:
```
void DoSomething(CallbackFunc callback) {
// 执行某些操作
int value = 10;
// 调用回调函数
callback(value);
}
```
在调用 `DoSomething` 函数时,将一个函数指针作为参数传递进去,该函数指针指向的就是回调函数。在 `DoSomething` 函数内部,通过该函数指针调用回调函数。
2. 函数对象方式
使用函数对象实现回调函数的方式与使用函数指针类似,只不过回调函数被封装在一个类的成员函数中。首先,定义一个回调函数类,并在其中定义回调函数的成员函数:
```
class Callback {
public:
void operator()(int value) {
// 执行回调函数的操作
}
};
```
在需要使用回调函数的地方,通过一个回调函数对象来执行回调函数:
```
void DoSomething(Callback& callback) {
// 执行某些操作
int value = 10;
// 调用回调函数
callback(value);
}
```
在调用 `DoSomething` 函数时,将一个回调函数对象作为参数传递进去,然后在 `DoSomething` 函数内部通过该函数对象调用回调函数的成员函数。
阅读全文