c++ - 将函数指针保存在数组 C++ 中

标签 c++ arrays function-pointers

我需要在 Arrays 中保存方法指针,像这样:

int main() {
void* man[10];
man[0]= void* hello();
man[0](2);


}

void hello(int val){

}

问题是,我能做到吗?

谢谢

最佳答案

是的,您可以通过创建函数指针数组轻松实现这一点。如果您首先为函数类型起别名,那么这是最易读的:

void hello(int);
void world(int);

int main()
{
    using fn = void(int);
    fn * arr[] = { hello, world };
}

用法:

fn[0](10);
fn[1](20);

如果没有单独的别名,语法会有点麻烦:

void (*arr[])(int) = { hello, world };

或者:

void (*arr[2])(int);
arr[0] = hello;
arr[1] = world;

关于c++ - 将函数指针保存在数组 C++ 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199400/

相关文章:

c++ - 将 Opengl 模型加载到容器中并依次调用它们

c++ - 指向带有 2 个参数的 WINAPI 函数的 Typedef 指针

c++ - 基本类型和用户定义类型的名称查找问题

c++ - 使用 Qt 进行 Android 开发

sql - 比较 PostgreSQL 中的两个数组

javascript - 旋转 JavaScript 数组

C、如何查找字符串中某个字符的所有实例的索引位置

c++ - 为什么函数指针和数据指针在C/C++中不兼容?

c - C 中的函数指针

c++ - 几乎没有差异的类的类设计