您的位置:首页 > 其它

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

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

    以下是实现的类:

    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 语言
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: