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();
但这显然是不可能的。最好的方法是什么?
感谢您的关注。
干杯!
您可以创建 vector
个 pairs
。 pair
的第一个元素可以设置为 enum
,指示函数类型,第二个元素将是类型转换为 void*
的函数指针。
std::vector<pair<int, void *> > functions;
我正在尝试为 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();
但这显然是不可能的。最好的方法是什么?
感谢您的关注。 干杯!
您可以创建 vector
个 pairs
。 pair
的第一个元素可以设置为 enum
,指示函数类型,第二个元素将是类型转换为 void*
的函数指针。
std::vector<pair<int, void *> > functions;