//将大量同类型函数制作方法列表。
//方法列表int—>type
QMap<int, QMap<int, void >> methodTable;
//构建调用接口Map
//int ->method,void 函数指针
QMap<int, void *> funMap;
//函数定义为int fun1(QString args),参数为QString,返回值为int
//添加函数
funMap.insert(merhod1, (void *)(fun1));
methodTable.insert(type1, funMap);
//定义一种指针类型CFun,它是一种指向函数int (QString)的指针,也就是说CFun表示的是这种类型的函数的地址,
//函数的类型只由它的返回值和参数表决定.指向某一函数的指针必须指向与该函数相同类型的函数(带有相同的返回类型和相同的参数表)。
typedef int(*CFun)(QString);
//查询函数
//参数:int type, int method, QString args
//根据type找接口Map
QMap<int, QMap<int, void *>>::iterator t_Iter = methodTable.find(type);
if (t_Iter != methodTable.end())
{
QMap<int, void *> t_MethodMap = t_Iter.value();
//根据merhod查找具体函数
QMap<int, void *>::iterator m_Iter = t_MethodMap.find(method);
if (mIter != t_MethodMap.end())
{
//得到对应函数
void *Fname = m_Iter.value();
CFun ExecuteFun = (CFun)Fname;
//根据需要处理参数
args.remove(QChar(’\n’), Qt::CaseInsensitive);
//执行函数
int ret = ExecuteFun(args);
}
}