首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何定义和声明函数数组,多谢

2012-02-13 
求助:怎么定义和声明函数数组,谢谢!请教:是这样:在 a.h 文件里void f1()void f2()void f3()void f()在

求助:怎么定义和声明函数数组,谢谢!
请教:
是这样:
在 a.h 文件里
void f1();
void f2();
void f3();
void f();

在 a.cpp 里

void f1()
{
}

void f2()
{
}

void f3()
{
}

void f()
{
  f1();
  f2();
  f3();
}

我想 把 f1() , f2() , f3()
弄成 一个数组 

void f()
{
 int i = 0;
 for (i = 0; i < 3; i++)
  {
  f1_3(i);
  }
}


各位大哥
void f1_3 这个数组函数应该怎么声明和定义啊?

谢谢!

[解决办法]
1 #include <iostream>
2 using namespace std;

4 typedef void (*func)();

6 void f1()
7 {
8 cout << "f1()" << endl;
9 }
 10 
 11 void f2()
 12 {
 13 cout << "f2()" << endl;
 14 }
 15 
 16 int main(void)
 17 {
 18 func arr[2];
 19
 20 arr[0] = f1;
 21 arr[1] = f2;
 22
 23 arr[0]();
 24 arr[1]();
 25
 26 return 0;
 27 }

[解决办法]

C/C++ code
 void (*p[3])() = { f1, f2, f3}; void f()  {      for (int i = 0; i < 3; i++)     {         (*(p+i))();     }  }
[解决办法]
C/C++ code
 void (*p[3])() = { f1, f2, f3}; void f()  {      for (int i = 0; i < 3; i++)     {         (*(p+i))();     }  }
[解决办法]
不需要释放,这个不是new或者malloc开辟的空间,仅仅是一个指针数组而已。

热点排行