首页 新闻 搜索 专区 学院

如何接受,解析命令

0
悬赏园豆:20 [待解决问题]

我有三个函数
(1)void modify(...)
(2)void insert(...)
(3)void delete(...)

我想写个函数接受这个三个函数,相当于接受三种类型的命名,如何定义这个函数啊,怎么判断他接受的是哪个函数?

C++
永月的主页 永月 | 初学一级 | 园豆:182
提问于:2012-04-13 09:29
< >
分享
所有回答(1)
1

三个函数参数需要一致:

void modify(void*) void insert(void*) void delete(void*)

1:定义函数指针 typedef  void(*fun_ptr)(void*);

2: 定义方法

void setFuntion(fun_ptr fun){

   fun_ptr function  = fun;

  //之后进行需要的操作 

}

 

为什么要知道接受的是哪个函数,如果知道的那么清楚,这种写法意义就不是很大了,当然也不是不能知道:

fun_ptr Handlers[MAX_COUNT_HANDLER]={NULL};

// 初始化函数指针数

Handlers[TYPE_0]     = NULL;

Handlers[TYPE_1]     =&modify;

Handlers[TYPE_2]     =&insert;

Handlers[TYPE_3]     =&delete;

在type和你的方法之间建立一个映射关系,type用enum完善的描述方法意图,调用方法的时候通过传递type进行调用。

zsounder | 园豆:2819 (老鸟四级) | 2012-04-13 12:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册