我正在尝试为class Menu
创建一个函数指针向量。
但是我不知道如何定义它,因为我想要添加的函数的指针有不同类型的参数,而有些参数根本没有。
我想象的是这样的:
vector<SomeReturnType(*)(SomeArgType)> functions;
我可以添加定义为的函数:
SomeReturnType function_1(Class_1 c1);
SomeReturnType function_2(Class_2 c2);
SomeReturnType function_3();
就像这样添加:
functions.push_back(function_1(object_of_Class_1));
functions.push_back(function_2(object_of_Class_2));
functions.push_back(function_3();
但这显然是不可能的。这样做的最佳方式是什么?
感谢您的关注。 干杯!
答案 0 :(得分:1)
您可以创建vector
pairs
。 pair
的第一个元素可以设置为enum
,表示函数的类型,第二个元素是函数指针,类型为void*
。
std::vector<pair<int, void *> > functions;