#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;
}
结果如下:
时间: 2024-10-15 12:12:54