【发布时间】:2021-12-07 23:01:31
【问题描述】:
假设我们有 2 个函数
foo() { cout << "Hello"; }
foo2() { cout << " wolrd!"; }
如何创建一个指针数组(比如a、b),其中a 指向foo(),b 指向foo2()?
我的目标是将这些指针存储在数组 A 中,然后遍历 A 以执行这些函数。
【问题讨论】:
-
因为您使用的是 C++ 而不是 C,所以使用
std::function,而不是原始指针。 -
@Jepessen 你不需要
std::function,只要需要。普通函数指针类型也适用于给定的情况。 -
@Jepessen:我们应该避免使用原始的 OWNING 指针。常规指针可能没问题。
-
您忘记了函数的返回类型,无论您遇到什么问题,都可能是因为编译器处于 GNU(或其他不兼容)模式,默认类型为
int。 -
@Jarod42
my goal is to store these pointers in an array A, then loop over A to execute these functions.在我看来,std::function是实现其目标的更好、更清洁、更安全的解决方案。那么显然可以使用原始指针。