如何使数组调用另一个类中的函数

How to make an array calling functions in another class

本文关键字:函数 另一个 何使 数组 调用      更新时间:2023-10-16

我正在尝试创建一个函数数组,这些函数将从我的排序类调用不同的排序函数。我尝试传递的数组是我自己的数组类中的一个。

https://cboard.cprogramming.com/c-programming/128162-array-functions.html该网站展示了如何在您所在的类中执行此操作,并且没有参数,但我想使用数组调用另一个类的函数。需要传入参数。

//What I want to do
static int (*func[2])() = { Sort.BruteForceBubble, Sort.FlaggedBubble};
func[1](&myArrayCopy); //Too many arguments
//What works 
Sort.BruteForceBubble(&myArrayCopy);
Sort.FlaggedBubble(&myArrayCopy);

我的目标是调用一个遍历所有函数的循环,以便我可以比较所有函数的速度。

int (*func[2])()

已声明的函数指针不带任何参数。正确声明函数 arg 类型,您应该很高兴。

切换到案例陈述使一切变得简单得多:

switch (sortType)
{
case 0:
    Sort.BruteForceBubble(&myArrayCopy);
    break;
case 1:
    Sort.FlaggedBubble(&myArrayCopy);
    break;
}

但是,像func[0](&myArrayCopy);这样的东西会更好,这更容易实现。