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)();
    }
  • 相关阅读:
    C++ 获取ms级的计时
    基于UDP的IP对IP的客户端程序
    stm32 keil生成bin文件
    xmos 加密
    DMX512程序介绍
    WS2812原理及实现
    MFC 通过按钮调用自对话框 给按钮加载位图 给对话框添加背景
    4*4矩阵键盘FPGA扫描实现
    FIFO
    Modelsim建立UVM环境
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4507822.html
Copyright © 2011-2022 走看看