zoukankan      html  css  js  c++  java
  • 类的成员函数指针的使用方法

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

        以下是实现的类:

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

  • 相关阅读:
    Slf4j框架的用法
    常用框架介绍
    Spring整合Kafka(Spring-Kafka)
    Java并发容器
    kafka多线程消费
    kafka简介
    kafka-clients介绍
    windows搭建kafka
    rocketmq-client使用
    Window搭建部署RocketMQ
  • 原文地址:https://www.cnblogs.com/lidabo/p/6639445.html
Copyright © 2011-2022 走看看