Daily1-大量同类型函数的调用

2 篇文章 0 订阅

//将大量同类型函数制作方法列表。
//方法列表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);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值