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

时间:2016-11-11 23:41:08

标签: c++ vector types arguments function-pointers

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

但这显然是不可能的。这样做的最佳方式是什么?

感谢您的关注。 干杯!

1 个答案:

答案 0 :(得分:1)

您可以创建vector pairspair的第一个元素可以设置为enum,表示函数的类型,第二个元素是函数指针,类型为void*

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