我有这段代码,它使用一个函数指针指向 3 个函数 sum、subtract、mul。它运作良好。但现在的问题是我的函数具有不同的参数数量和不同的数据类型。如何实现。
int add(int a, int b)
{
cout<<a+b;
}
int subtract(int a, int b)
{
cout<<a-b;
}
int mul(int a, int b)
{
cout<<a*b;
}
int main()
{
int (*fun_ptr_arr[])(int, int) = {add, subtract, mul};
unsigned int ch, a = 15, b = 10,c=9;
ch=2;
if (ch > 4) return 0;
(*fun_ptr_arr[ch])(a, b);
return 0;
}
最佳答案
简单的答案是,从技术上讲,您不能这样做。您可以使用数组作为所有这些函数的输入进行一些操作,但您仍然必须确切地知道要传递给每个函数的内容。从软件工程的角度来看,你不应该这样做 - 我建议你看看这里的好答案:C++ Function pointers with unknown number of arguments
关于c++ - 具有不同数据类型或参数的不同函数的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41456457/