一个函数的参数是回调函数,这个参数怎么写,例如:回调函数是void namesort(vector<string>& names,int idx = 0)
时间: 2024-03-05 22:53:59 浏览: 59
回调函数书写
可以这样写:
```c++
void funcName(void (*callback)(vector<string>&, int), vector<string>& names, int idx = 0) {
callback(names, idx);
}
```
然后调用 `funcName` 函数时,将回调函数作为第一个参数传入即可。例如:
```c++
void myCallback(vector<string>& names, int idx) {
// 回调函数的具体实现
names[idx] = "new name";
}
vector<string> names = {"Alice", "Bob", "Charlie"};
funcName(myCallback, names, 1); // 调用时将 myCallback 作为回调函数传入
```
在上述代码中,`myCallback` 函数就是一个回调函数,用于在 `funcName` 函数内部被调用。`funcName` 函数的第一个参数就是回调函数,类型为 `void (*)(vector<string>&, int)`,表示一个参数为 `vector<string>&` 和 `int` 的无返回值函数指针。`names` 和 `idx` 则是回调函数的具体参数,由 `funcName` 函数传入。
阅读全文