当前位置:首页 C++ > 正文

C++核心编程:函数指针与回调函数

作者:野牛程序员:2023-12-28 11:37:14 C++阅读 2620

在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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击