码迷,mamicode.com
首页 > 编程语言 > 详细

C++中如何获取类成员的指针

时间:2014-08-08 02:01:31      阅读:249      评论:0      收藏:0      [点我收藏+]

标签: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++中如何获取类成员的指针,布布扣,bubuko.com

C++中如何获取类成员的指针

标签:c++   成员函数   函数地址   指针   函数指针   

原文地址:http://blog.csdn.net/fayery/article/details/38424363

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!