最近有朋友问我,C++ 里怎么实现用 string 取函数,因为要实现一个 server,根据送来报文里的类型字段选择合适的函数处理。
答案是使用函数指针,或者使用 std::function 封装过的函数指针。
注意,此时要求所有函数的签名类型是一样的,包括参数和返回值,因为这样编译器才能确定函数调用时的参数入栈顺序等。
如果各个函数长的不一样,请使用switch-case语句手动调用。
#include <iostream>
#include <map>
#include <functional>
#include <string><