我试图找出一种方法来将函数指针分配给具有不同数量参数的函数。
我有一个 while 循环,它采用许多不同的函数作为条件语句,所以我不想用完全相同的代码编写多个 while 循环,而是希望有一个带有函数指针的循环。所有函数都是格式的bool f(...)
。我认为一些代码最能说明我的意思:
int a, b, c, d;
MyClass* my_class;
typedef bool (MyClass::*my_fun_t)();
my_fun_t my_fun;
if (condition1)
my_fun = &MyClass::function_one();
else if (condition2)
my_fun = &MyClass::function_two(a, b);
else if (condition3)
my_fun = &MyClass::function_three(a, b, c);
else if (condition4)
my_fun = &MyClass::function_four(a, b, c, d);
while ((my_class->*my_fun)())
{ ... }
现在这显然不起作用,因为函数具有不同的签名。有没有可能让它以类似的方式工作?functoids 是我应该看的东西吗?