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

请给出一个实例,结合例子具体说明一下。

一个函数(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);

}

大体就是这样使用的。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-28
把函数名作为参数就是函数的地址了.

比如
_beginthread()
这个函数,

void Thread()
{}

_beginthread( Thread, 0, 0)

就是启动Thread作为一个线程.本回答被提问者和网友采纳
第2个回答  推荐于2017-09-20
把函数名作为参数就是函数的地址了.
如下面的例子
#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);
return 0;
}
第3个回答  2008-10-23
应该是把某个函数的最终返回值作为另一个函数的参数。就是在调用的时候先去计算某函数的值,之后再把它作为调用它的函数的参数并带入此函数的计算。
第4个回答  2008-10-23
typedef void (*p) (void);

void invoke(p);//p is a pointer to a fuction
void output();

void output()
{
//do stn here
}

void invoke(output)
{
output();
}
相似回答