读书人

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

发布时间: 2012-02-21 16:26:23 作者: rapoo

求助:怎么定义和声明函数数组,谢谢!
请教:
是这样:
在 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 这个数组函数应该怎么声明和定义啊?

谢谢!

[解决办法]
好像没有什么函数数组吧,不过可以用函数指针,形成指针数组。
[解决办法]
typedef void (__stdcall* PFUNC)();

void f1();
void f2();
void f3();
PFUNC funcArray[]={f1, f2, f3};

[解决办法]
给个例子,也是抄人家的:
写5个函数:
void print();
void copy();
void delete();
void quit();
void help();
然后用一个函数指针数组把他们存在一起:
void (*p[])() = {print, copy, delete, quit, help};
然后根据用户入0,1,2,3,4来直接叫函数
cin >> index;
p[index]();

[解决办法]
同 红猪........
[解决办法]

C/C++ code
typedef void (__cdecl* PFUNC)(); void f1(){TRACE("function 1");}void f2(){TRACE("function 2");} void f3(){TRACE("function 3");} PFUNC funcArray[]={f1, f2, f3}; for(int i=0; i<3; i++){  // call the function array  funcArray[i]();}
[解决办法]

typedef void (__stdcall* PFUNC)();

void f1();
void f2();
void f3();
PFUNC funcArray[]={f1, f2, f3};
[解决办法]
一个是栈上分配的,还有是在堆上分配的,一般的局部变量都是在栈上分配的,不用释放,用new或是malloc动态获得的空间就是在堆上的,要自己释放。
[解决办法]
只有 new 和 malloc 才需要释放,是吗?
==========
应该是这样的。

读书人网 >VC/MFC

热点推荐