c++ - 具有不同数据类型或参数的不同函数的函数指针

标签 c++ function-pointers

我有这段代码,它使用一个函数指针指向 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/

相关文章:

c - 对于 ANSI C 中的特殊应用,case 语句或函数指针数组是否更快?

比较 C 中具有任意位数的两个值

c - C 中函数指针的原子读/写?

c - RET 之后的指令是否总是 CALL 之后的指令?

c - C 中这些函数指针之间的转换安全吗?

c++ - 如果不知道数组的大小,如何将函数数组作为参数传递

c# - 在 Metro (WinRT) 应用程序中使用 PBKDF2 加密

c++ - 如何创建所有缺少一个元素的样本 vector 的 vector ?

c++ - 使用 union 作为树中的项目类型以存储两种不同的数据类型

c++ - 为 isocpp 的核心指南配置 clang-format