前言
阅读本文之前你需要明确知道函数指针和普通函数的区别,对这两者本文不做过多说明
目标
使用函数指针数组建立一套bpm工作流框架。这套框架在各种oa以及某几个大型通信公司应用的很广泛
适应场景
多分枝(类似Swtich)条件下、处理函数的形参列表和返回类型相同。如:
int func1(const char *pszContent);
int func2(const char *pszContent);
...
int funcN(const char *pszContent);
void processMsg(int iMsgType, const char *pszContent)
{
switch(iMsgType)
{
case 1: func1(pszContent);
break;
case 2: func2(pszContent);
break;
...
case N: funcN(pszContent);
break;
}
对于上述场景,我们可以采用函数指针数组的方式处理,如下:
typedef int (*pFunc)(const char*); //创建函数指针
pFunc arrFuncPoint[n+1]; //创建函数指针数组
//初始化指针数组
void init()
{
arrFuncPoint[0] = 0;
arrFuncPoint[1] = func1;
arrFuncPoint

本文探讨如何使用函数指针数组构建一个适用于多分枝场景的工作流框架,并介绍从普通函数到类成员函数指针数组的升级。文章解释了为何在定义成员函数指针数组时需要指定类作用域,因为非静态成员函数的原型包含了隐含的`this`指针。
最低0.47元/天 解锁文章
866

被折叠的 条评论
为什么被折叠?



