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

 

原文链接: https://www.cnblogs.com/darwen/p/12251943.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

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

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/326545

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午3:52
下一篇 2023年3月1日 下午3:52

相关推荐