C++核心编程:函数指针与回调函数
作者:野牛程序员:2023-12-28 11:37:14 C++阅读 2661
在C++核心编程中,函数指针和回调函数是非常重要的概念。函数指针是指可以指向一个函数的指针变量,而回调函数则是通过函数指针来实现的一种机制。
函数指针的声明形式如下:
返回类型 (*指针变量名)(参数类型1, 参数类型2, ...);
例如,假设有一个函数:
void myFunction(int x) {
// 函数的实现
// ...
}那么可以声明一个指向这个函数的指针:
void (*functionPtr)(int); functionPtr = &myFunction; // 或者直接写作 functionPtr = myFunction;
通过函数指针,可以动态地调用不同的函数。
回调函数则是在某个事件发生时由用户注册的函数,当事件发生时系统调用该函数。回调函数通常通过函数指针来实现。
以下是一个简单的例子,展示了如何使用函数指针和回调函数:
#include <iostream>
// 回调函数的原型
typedef void (*CallbackFunction)(int);
// 执行回调的函数
void performCallback(CallbackFunction callback, int value) {
callback(value);
}
// 回调函数1
void callbackFunction1(int x) {
std::cout << "Callback Function 1: " << x << std::endl;
}
// 回调函数2
void callbackFunction2(int x) {
std::cout << "Callback Function 2: " << x * 2 << std::endl;
}
int main() {
// 声明函数指针
CallbackFunction callbackPtr;
// 使用回调函数1
callbackPtr = &callbackFunction1;
performCallback(callbackPtr, 10);
// 使用回调函数2
callbackPtr = &callbackFunction2;
performCallback(callbackPtr, 5);
return 0;
}这个例子中,performCallback 函数接受一个回调函数和一个整数参数,并在函数内部调用该回调函数。在 main 函数中,声明了两个回调函数,并通过函数指针调用了这两个回调函数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:浅谈C++类型转换函数
- 下一篇:c++面向对象:私有成员的封装
