代码片段--参数相同函数调用机制
2014-07-11 11:08
525 查看
1,定义函数指针
typedef void (CAppProtocol::*PParse)(const tagClientInfo &clientinfo);
typedef void (CAppProtocol::*PResult)(int result, std::vector<tagProperty> TaskProperty);
2,定义map变量
std::map<CString, PParse> _mapParseProtocol;
std::map<int, PResult> _mapTaskResult;
3,添加具体处理函数
void CAppProtocol::CR_PhoneLogin(int result, std::vector<tagProperty> TaskProperty)
{
......
}
void CAppProtocol::CR_PhoneLogout(int result, std::vector<tagProperty> TaskProperty)
{
........
}
4,为map变量赋值
_mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogin, &CAppProtocol::CC_PhoneLogin));
_mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogout, &CAppProtocol::CC_PhoneLogout));
5,定义解析函数,只需要传递命令名称和函数参数
void CAppProtocol::ExeParse(CString command, const tagClientInfo &clientinfo)
{
if (_mapParseProtocol.find(command) != _mapParseProtocol.end())
{
PParse pFunc = _mapParseProtocol[command];
return (this->*pFunc)(nodeContent, clientinfo);
}
}
void CAppProtocol::TaskResult(int taskName, int result, std::vector<tagProperty> TaskProperty)
{
if (_mapTaskResult.find(taskName) != _mapTaskResult.end())
{
PResult pFunc = _mapTaskResult[taskName];
return (this->*pFunc)(result, TaskProperty);
}
}
typedef void (CAppProtocol::*PParse)(const tagClientInfo &clientinfo);
typedef void (CAppProtocol::*PResult)(int result, std::vector<tagProperty> TaskProperty);
2,定义map变量
std::map<CString, PParse> _mapParseProtocol;
std::map<int, PResult> _mapTaskResult;
3,添加具体处理函数
void CAppProtocol::CR_PhoneLogin(int result, std::vector<tagProperty> TaskProperty)
{
......
}
void CAppProtocol::CR_PhoneLogout(int result, std::vector<tagProperty> TaskProperty)
{
........
}
4,为map变量赋值
_mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogin, &CAppProtocol::CC_PhoneLogin));
_mapParseProtocol.insert(std::pair<CString,PParse>(Pr_PhoneLogout, &CAppProtocol::CC_PhoneLogout));
5,定义解析函数,只需要传递命令名称和函数参数
void CAppProtocol::ExeParse(CString command, const tagClientInfo &clientinfo)
{
if (_mapParseProtocol.find(command) != _mapParseProtocol.end())
{
PParse pFunc = _mapParseProtocol[command];
return (this->*pFunc)(nodeContent, clientinfo);
}
}
void CAppProtocol::TaskResult(int taskName, int result, std::vector<tagProperty> TaskProperty)
{
if (_mapTaskResult.find(taskName) != _mapTaskResult.end())
{
PResult pFunc = _mapTaskResult[taskName];
return (this->*pFunc)(result, TaskProperty);
}
}
相关文章推荐
- 关于C语言中函数调用和参数传递机制的探讨
- 关于C语言中函数调用和参数传递机制的探讨(zz)
- 关于C语言中函数调用和参数传递机制的探讨--汇编
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- java调用函数参数的传递机制及java内存管理
- 通过Java发射机制调用可变参数函数
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- 关于C语言中函数调用和参数传递机制的探讨(一 .无参数传递)
- js 函数的参数、调用 代码笔记
- 函数调用,C# 调用Dll中非托管C++代码时,函数参数的类型对照
- 转载-关于C语言中函数调用和参数传递机制的探讨
- 关于C语言中函数调用和参数传递机制的探讨(三 .传递多个参数等)
- Python自定义函数定义,参数,调用代码解析
- 代码片段如何作为宏定义函数参数
- 关于C语言中函数调用和参数传递机制的探讨
- 对于qt5的信号机制的一点参考,然后利用模板实现:在新线程执行可变函数参数的调用
- 关于C语言中函数调用和参数传递机制的探讨(二 .传递一个参数)
- 关于C语言中函数调用和参数传递机制的探讨