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

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

    以下是实现的类:

    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 语言

上一篇:【ZooKeeper Notes 14】数据模型


下一篇:struts2配置详解(struts.xml配置详解)