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

C++中怎样获取类成员的指针

时间:2015-05-16 16:11:45      阅读:154      评论: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++中怎样获取类成员的指针

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/4507822.html

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