首页 > 代码库 > 指向成员的指针

指向成员的指针

#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;

}


结果如下:



指向成员的指针