首页 > 其他 > 详细

指向成员的指针

时间:2014-02-22 09:28:12      阅读:345      评论:0      收藏:0      [点我收藏+]

1、从封装的角度看,类可认为是一个命名空间,名称就是类名。类中有两个成员:字段和方法。

2、指针可以指向任何对象,当然也可以指向类中的字段和方法。那么该如何指向类中的字段和方法呢?

3、分别是:

  int Animal::*pData = &Animal::_age;

  int (Animal::*pFun)() = &Animal::getAge;

4、我们定义指向类中字段或者方法的指针,往往是为了通过指针和对象绑定一起,去修改字段或者访问方法,这种情况下,我们不需要直到类的字段名或者方法名。该怎么做呢?

  既然是指向字段或者方法的指针,通过*解引用,就得到了字段或者指针。对于对象使用.*,对于指针使用->*。需要注意的是,.*是在一起的,不能使用括号分开,对于->*也是一样的道理。

bubuko.com,布布扣
 1  int Animal::*pData;
 2  pData = &Animal::_age;

 3 
 4  int (Animal::*pFun)() = &Animal::getAge;
 5 
 6  Animal a;
 7  a.*pData = 9;
 8  cout<<(a.*pFun)()<<endl;
 9 
10  Animal *b = new Animal;
11  b->*pData = 8;
12  cout<<(b->*pFun)()<<endl;
bubuko.com,布布扣


 

指向成员的指针

原文:http://www.cnblogs.com/nzbbody/p/3560030.html

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