C++中一个函数作为作为另一个函数的参数该如何解释

来源:百度知道 编辑:UC知道 时间:2024/06/21 16:05:09
请给出一个实例,结合例子具体说明一下。

一个函数(actionfun)作为另一个函数的参数(mainfun),实际上是在运行主函数mainfun的时候,得到的一些数值传入到actionfun函数中,actionfun为主函数做一些设置也可以执行一些其他的功能,但都要从主函数mainfun中得到参数。 举例如下:

在.h中声明一个类型 和actionfun参数等一样
typedef int (*fun)(int tpart);

在.cpp中
int actionfun(int tpart)
{
//..........此处为执行函数,tpart为参数
return 0;
}

void mainfun(tag_t p_tag,fun actionfun)
{
//此处为执行代码....
//在执行打码中得到一个int值 假设为int int1
//将这个int1作为action的参数
(*actionfun)(int1);

}

大体就是这样使用的。

把函数名作为参数就是函数的地址了.
如下面的例子
#include <iostream>
using namespace std;
typedef int (*PFUN)(int a, int b);//函数指针
int add(int a, int b)
{
return (a+b);
}
void fun(int a, int b, PFUN pfun) //函数指针作为函数的参数
{
cout << pfun(a,b) <<endl;
}

int main()
{
int a=5;
int b=6;
PFUN pfun=add; //将函数指针指向add
fun(a, b, pfun);
retu