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

  • 相关阅读:
    分分钟制作微信朋友圈页面
    js模板引擎原理,附自己写的简洁模板引擎
    基于H5 pushState实现无跳转页面刷新
    随手学和记——PHP快速上手基础
    ES5 特性概览
    JavaScript错误和异常
    JavaScript闭包探究
    FastDFS总结
    C++11笔记
    leveldb源码笔记
  • 原文地址:https://www.cnblogs.com/darwen/p/12251943.html
Copyright © 2011-2022 走看看