功能地图c
发布时间:2020-12-16 03:20:21 所属栏目:百科 来源:网络整理
导读:我已经做了一个功能的地图.所有这些函数都是void并接收单个字符串参数. 码: void f1(string params){...}void f2(string params){...}void f3(string params){...}mapstring,void* funcMap;funcMap["f1"] =(void*)f1;funcMap["f2"] =(void*)f2;funcMap["f3"
我已经做了一个功能的地图.所有这些函数都是void并接收单个字符串参数.
码: void f1(string params){...} void f2(string params){...} void f3(string params){...} map<string,void*> funcMap; funcMap["f1"] =(void*)&f1; funcMap["f2"] =(void*)&f2; funcMap["f3"] =(void*)&f3; 我如何调用函数? void (*func)(string) = &funcMap[commandType]; func(commandParam); 我收到此错误消息: Server.cpp:160:46: error: cannot convert ‘void**’ to ‘void (*)(std::string) {aka void (*)(std::basic_string<char>)}’ in initialization 解决方法typedef void (*pfunc)(string); map<string,pfunc> funcMap; funcMap["f1"] = f1; //and so forth 然后打电话: pfunc f = funcMap[commandType]; (*f)(commandParam); 一般来说,为什么扔掉安全?如果它是函数指针的映射,则将其声明为一个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |