如何以函数作为输入参数?

iiiyyyhhhsss 2009-09-21 01:38:19
是否可以以函数作为输入参数?如果可以,格式如何呢?
...全文
168 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chen2009zhou 2011-06-13
  • 打赏
  • 举报
回复
路过看看
kakashi0309 2009-09-21
  • 打赏
  • 举报
回复
如果这个参数只是函数地址的话 那就定义个指针就OK
iiiyyyhhhsss 2009-09-21
  • 打赏
  • 举报
回复
To楼上:但是我需要的不是调用一个函数啊?我是要把函数作为输入参数,并不是要执行这个函数啊
ztenv 版主 2009-09-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hittlle 的回复:]
写的有点急
void example(const char* input){
    if(strcmp(input,"printScore")==0):{
              //调用printScore这个函数
                break;
    }
}

这种思路来嘛

[/Quote]

当你有成千上百个函数的时候也这样写吗?用if..else 或switch ?
hittlle 2009-09-21
  • 打赏
  • 举报
回复
就是用户输入一个字符串,你判断一下,然后决定调用哪个函数,就OK了;
比如,用户输入printScore;你在这儿就调用printScore这个函数
hittlle 2009-09-21
  • 打赏
  • 举报
回复
写的有点急
void example(const char* input){
if(strcmp(input,"printScore")==0):{
//调用printScore这个函数
break;
}
}

这种思路来嘛
hittlle 2009-09-21
  • 打赏
  • 举报
回复
没必要这么麻烦

void example(const char* input){
if(strcmp(input,"printScore")):{
//调用printScore这个函数
break;
}
}

这种思路也行嘛;何必一定要折腾呢
dodo4444 2009-09-21
  • 打赏
  • 举报
回复
把函数当作一个类型, 把函数地址传进去。
int mm(int a)
{
return a;
}
//这里定义F 为 函数指针类型
typedef int(*F)(int);

void bb{ F f)
{
(*f)(5);//调用函数
}
void main()
{
bb(&mm);//这里把函数mm的地址传入
}
大概是这样没经过测试。

iiiyyyhhhsss 2009-09-21
  • 打赏
  • 举报
回复
可不可以在这里直接写个格式来看看呢?
例如:有一条函数,void A();作为B的输入参数


void B(??);

如何写呢?
whg01 2009-09-21
  • 打赏
  • 举报
回复
可以。
比较简单的办法是用typedef定义一个函数指针类型,然后把参数设置为该类型。
ztenv 版主 2009-09-21
  • 打赏
  • 举报
回复
函数指针用过吗?没用过的话看看C++ primer

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧