C ++从函数数组中调用函数

时间:2014-02-05 01:53:03

标签: c++ arrays function

对不起,我刚刚开始这个学期的C ++。但我有个问题。我知道javascript有些什么,我喜欢它作为一种编程语言有多松散。 (这既是好事也是坏事。)但是你可以用javascript做一件事,我不确定你是否可以用c ++做。

我想从函数数组中调用一些函数,这是在javascript中完成的一个链接。 Javascript Array of Functions。我的想法是编写一个for循环,它将按照我想要的顺序遍历函数。 (从头到尾。)如果有替代方案,我会很好。我甚至可以用函数1之后的数字命名函数,例如,如果这可能有帮助。我不确定这是否可行,但任何帮助或任何事情都会非常棒。

2 个答案:

答案 0 :(得分:3)

你谈到“功能指针”吗?

void f1() { .. }
void f2() { .. }
void f3() { .. }

typedef void (*pf)();

pf arf[3] = { f1, f2, f3 };

arf[0]();

答案 1 :(得分:2)

如果您不想使用函数指针

struct parent
{
   virtual void f();
}

struct child1 : parent
{
  void f(){};
}

struct child2 : parent
{
  void f(){};
}

struct child3 : parent
{
  void f(){};
}

.
.
.

struct childn : parent
{
  void f(){};
}


parent array = {child1,child2,child3,.....,childn};

array[n].f();

each child classes will contain different implementations of f(), so you can 

create an array of child structs and invoke the methods through the for loop.