zoukankan      html  css  js  c++  java
  • C++中怎样获取类成员的指针

    
    我们都知道C++ class中有三种成员函数,static(静态的),nonstatic(非静态的),virtual(虚拟的)各种成员函数的指针各有差别,下面是一个完整的样例:(注意红颜色的差别
    class A 
    {
    public:
       static void staticmember(){cout<<"static"<<endl;}   //static member
       void nonstatic(){cout<<"nonstatic"<<endl;}          //nonstatic member
       virtual void virtualmember(){cout<<"virtual"<<endl;};//virtual member
    };
    int main()
    {
      A a;
      //static member,取得的是该函数在内存中的实际地址,并且由于static成员是全局的,所以不能用A::限定符
      void (*ptrstatic)()= &A::staticmember;      
      //nonstatic member 取得的是该函数在内存中的实际地址     
      void (A::*ptrnonstatic)() = &A::nonstatic;
     //虚函数取得的是虚函数表中的偏移值,这样能够保证能过指针调用时相同的多态效果
      void (A::*ptrvirtual)() = &A::virtualmember;
     //函数指针的使用
      ptrstatic();
      (a.*ptrnonstatic)();
      (a.*ptrvirtual)();
    }
  • 相关阅读:
    51串口通信
    juicer使用备忘
    51单片机音乐盒程序
    最精简24L01程序--接收
    sqlserver 数据库迁移
    sqlserver自增主键
    js keycode
    tabindex 去掉虚线
    div 绑定keyup
    sqlserver 当前时间减去30天
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4507822.html
Copyright © 2011-2022 走看看