类的成员函数指针的使用方法

函数指针主要的目的是实现与运用相互分离,类的成员函数封装在类里面,运行需要相应的对象来调用,所以在调用这个类的成员函数时候,需要类的函数地址和这个类的对象。

    以下是实现的类:

    class A
    {
    public:
void DoSth()
{
printf("A-DoSth");
}
    };

   以下是调用的类:

    typedef void (A::*PFun)(void);//声明类的函数指针


    class B
    {
    public:
     B(void):pA(NULL),pFun(NULL)
     {  
     }


   ~B(void)

           {

           }

  void SetAddr(A* pA,PFun pAddr)
  {
  this->pA = pA;
  pFun = pAddr;
  }


  void RunFun()
          {
if(pA&&pFun)
 (pA->*pFun)();
  }
   private:
A* pA;
PFun pFun;
   };

  

以下是综合使用部分:

        A a;
B b;

       PFun pAddr = &A::DoSth;//类的成员函数地址

       b.SetAddr(&a,pAddr);

       b.RunFun();

总结:

使用函数指针多数在多线程里。

 

参考:

高质量程序设计指南-C++/C 语言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值