码迷,mamicode.com
首页 > 其他好文 > 详细

指向成员的指针

时间:2015-01-15 11:07:34      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:指向成员的指针

#include <iostream>

using namespace std;

class Data

{

public:

int a;

int b;

int c;


public:

Data():a(0),b(0),c(0){}

void printf(){cout<<"a="<<a<<",b="<<b<<",c="<<c<<endl;}

};

int main()

{

Data x;

Data *y=&x;

int Data::*pDataInt=NULL;     //定义一个Data类中int变量的指针,初值设置为空。

pDataInt=&Data::a;            //此处指定类中偏移位置,指向成员a的位置,并不是得到a                                       //的真实地址。 

y->*pDataInt=34;              //这里通过this指针可以得到真正的地址,然后完成赋值。

x.printf();

pDataInt=&Data::b;

y->*pDataInt=35;

x.printf();


x.*pDataInt=1;

x.printf();

pDataInt=&Data::c;      

x.*pDataInt=2;         

x.printf();

return 0;

}


结果如下:



指向成员的指针

标签:指向成员的指针

原文地址:http://ml6300.blog.51cto.com/2156918/1604153

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