C++函数指针数组的使用方法 |
您所在的位置:网站首页 › 函数指针数组的指针 › C++函数指针数组的使用方法 |
2015-11-24 一、 缘起什么情况下,想到将函数指针数组来的呢?是由于近期写的一个程序中,有一系列顺序化的函数,且这些函数的形式基本一致,需要对每一步的执行结果进行判断,是否执行成功,若执行成功,则继续执行下一函数,如果执行失败,则终端执行并退出。 由于依次要执行的函数比较多,有5个。按照常规思路来写代码的话,就是对每一步执行的结果进行IF-ELSE判断,根据结果决定下一步执行的内容。目前只有5个函数需要执行,如果有更多类似的函数需要按顺序执行的话,那么这个函数将会非常长,不便于阅读,代码也不美观。 考虑到当前使用的函数的参数列表和返回值基本一致,因此考虑是否可以采用遍历函数指针数组的方式,把函数指针存放到数组中,遍历数组,从而依次执行对应指针指向的函数,并对结果逐一判断,并做相应处理。这样对结果处理部分可以采用统一的方式,判断非常方便,代码也非常简洁清晰,阅读起来也比较容易。 于是上网查询相关资料,了解函数指针数组的使用方法。通过查询资料,C++函数指针数组的使用可以分为两类,一类是全局函数的指针数组的使用(与C语言相同),另一类是C++类的成员函数指针数组的使用。现就这两种情况分别进行整理。 二、 C中的全局函数指针数组使用 (一) 要求1. 要求被调用的一系列函数的参数列表和返回值类型均完全一致; 2. 要求将所要调用的函数指针放入函数指针数组中(如果函数必须含顺序执行,那么函数指针的存放顺序需要与调用的顺序保持一致); 3. 调用时,从数组中取出要执行的函数指针,执行对应的函数即可。 (二) 代码案例参考自:http://blog.csdn.net/feitianxuxue/article/details/7300291
#include using namespace std;
void function0(int); void function1(int); void function2(int);
int _tmain(int argc, _TCHAR* argv[]) { void (*f[3])(int) = {function0,function1,function2}; //将这3个函数指针保存在数组f中 intchoice; cout> choice; //处理用户的选择 while((choice >= 0) && (choice choice;} cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |