zoukankan      html  css  js  c++  java
  • C++ 类成员函数的函数指针

    C++ 类成员函数的函数指针

    调用类中非静态成员函数的时候,使用的是类名::函数名;而不是实例名::函数名。

    class A 
    {
    public:
          static void StaticMethod(){cout<<"static"<<endl;}       //static member         静态函数
          void  nonStaticMethod()  {cout<<"nonstatic"<<endl;}          //nonstatic member   普通成员函数
          virtual void virtualMethod(){cout<<"virtual"<<endl;};   //virtual member         虚函数
    };


    int main()
    {
        A a;


        //static成员函数,取得的是该函数在内存中的实际地址,而且因为static成员是全局的,所以不能用A::限定符
        void (*ptrStatic)() = &A::staticMethod;

         
        //nonStaticMethod 成员函数 取得的是该函数在内存中的实际地址     
        void (A::*ptrMethod)() = &A::nonStaticMethod;


        //虚函数取得的是虚函数表中的偏移值,这样可以保证能过指针调用时同样的多态效果
        void (A::*ptrVirtual)() = &A::virtualMethod;
       

     //函数指针的使用方式

      ptrStatic();
        (a.*ptrMethod)();
        (a.*ptrVirtual)();
    }

    感谢: https://blog.csdn.net/afei__/article/details/81985937

  • 相关阅读:
    cz_health_day07
    cz_health_day06
    mysql索引底层原理
    cz_health_day05
    redis无法获取连接原因分析
    cz_health_day04
    cz_health_day03
    cz_health_day02
    cz_health_day01
    Spring学习
  • 原文地址:https://www.cnblogs.com/darwen/p/12251943.html
Copyright © 2011-2022 走看看