C ++:指向具有不同类型参数的函数的函数指针向量

C++: Vector of function pointers to functions with different type of arguments

我正在尝试为 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();

但这显然是不可能的。最好的方法是什么?

感谢您的关注。 干杯!

您可以创建 vectorpairspair 的第一个元素可以设置为 enum,指示函数类型,第二个元素将是类型转换为 void* 的函数指针。

std::vector<pair<int, void *> > functions;