首页 > 编程语言 > 详细

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

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

我们都知道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++中如何获取类成员的指针

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!