c++ 关于类成员函数指针

当需要对函数的执行顺序进行更高层次的管理时,可以考虑使用函数指针。

类成员函数指针,顾名思义,即目的是对某个类的某些成员函数进行指针调用。


如下是一个运行模式相对简单,但是实用的例子。

CA是自定义的一个类,下面是它的3个成员函数。

void F1(void);
void F2(void);
void F3(void);

我现在希望能够实现:在没有满足某个条件时,函数按F1,F2,F3的顺序执行;而当满足这个条件时,函数执行完当前函数后不再执行后面的函数。


以上流程,用if-else很容易实现,但当所需要执行的函数不止3个时,就不好写了。这时该类成员函数指针出场了,它显然更适合于大型系统程序。


在安排运行F1-F3的cpp文件里这么写:

CA ca;

CA* pCa;

bool Stop;

typedef void (CA::*PTRFUN)(void); 

list<PTRFUN> list_pFun;
list<PTRFUN>::iterator it;

list_pFun.push_back(&CA::F1);
list_pFun.push_back(&CA::F2);

list_pFun.push_back(&CA::F3);

for(it=list_pFun.begin();it!=list_pFun.end();it++)
{
(pCa->**it)();
if(Stop) //Stop由键盘控制,实现在另一个线程里
break;
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值