函数指针作为参数,如何传参
时间: 2024-07-14 20:00:31 浏览: 72
指针进阶之数组参数和指针参数
函数指针作为一种特殊的指针类型,它可以存储函数的地址,使得函数能够像其他数据类型一样被传递和操作。在C++中,将函数指针作为参数的主要用法如下:
1. 传递函数地址:当你有一个函数你想让另一个函数执行,可以将该函数的地址作为参数。例如:
```cpp
void print(int value) {
std::cout << value << std::endl;
}
void callWithFunctionPointer(int (*func)(int), int arg) {
func(arg); // 这里func就是函数指针,调用的是print函数
}
int main() {
callWithFunctionPointer(print, 42);
return 0;
}
```
在`callWithFunctionPointer`函数中,`int (*)(int)`定义了一个接收一个整数并返回无值的函数指针。
2. 使用函数指针作为回调:在一些设计模式或事件处理中,函数指针常用于作为事件的处理程序。
```cpp
void handleEvent(void (*callback)(string)) {
string event = "Hello";
callback(event); // 在这个例子中,callback会被打印函数使用
}
void printString(string str) {
std::cout << str << std::endl;
}
int main() {
handleEvent(printString);
return 0;
}
```
阅读全文