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

  • 相关阅读:
    6.7-CU微程序设计
    6.6-CU组合逻辑设计
    6.5-CU的功能
    6.4-微操作命令的分析
    6.3-时序产生器
    6.2-指令的执行
    6.1-CPU的组成与功能
    5.3-指令格式设计
    【Java循环使用 + JS循环】
    JSON转换集合,报错exepct '[', but {, pos 1, json或者syntax error, expect {, actual [, pos 0
  • 原文地址:https://www.cnblogs.com/darwen/p/12251943.html
Copyright © 2011-2022 走看看