要给这个函数指针取个别名为funptr
时间: 2023-07-05 12:32:12 浏览: 46
可以使用 `typedef` 给函数指针类型取别名,例如:
```c++
typedef void (*funptr)(vector<string>&, int);
void funcName(funptr callback, vector<string>& names, int idx = 0) {
callback(names, idx);
}
```
这样就可以将 `void (*)(vector<string>&, int)` 这个类型取一个别名 `funptr`,然后在 `funcName` 函数中直接使用 `funptr` 来表示这个类型了。
注意,在上述代码中,`funptr` 是一个类型,而不是一个变量。如果要定义一个函数指针变量,可以这样写:
```c++
void myCallback(vector<string>& names, int idx) {
// 回调函数的具体实现
names[idx] = "new name";
}
funptr ptr = myCallback; // 定义一个函数指针变量 ptr,指向 myCallback 函数
vector<string> names = {"Alice", "Bob", "Charlie"};
funcName(ptr, names, 1); // 调用时将 ptr 作为回调函数传入
```
在上述代码中,`ptr` 就是一个函数指针变量,类型为 `funptr`,它被初始化为指向 `myCallback` 函数的指针。然后调用 `funcName` 函数时,将 `ptr` 作为回调函数传入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)