C++函数指针数组的使用方法

您所在的位置:网站首页 函数指针数组的指针 C++函数指针数组的使用方法

C++函数指针数组的使用方法

2024-07-11 02:16| 来源: 网络整理| 查看: 265

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