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

  • 相关阅读:
    Java中变量的使用规则
    Java中的数据类型
    如何命名Java变量
    thinkphp3.2 验证码生成和点击刷新验证码
    workerman
    jorgchart,帮助你生成组织结构图的
    PHP代码获取客户端IP地址经纬度及所在城市
    百度API城市代码CityCode官方文档
    自定义过滤器
    内置过滤器
  • 原文地址:https://www.cnblogs.com/darwen/p/12251943.html
Copyright © 2011-2022 走看看