首页 > 代码库 > 指向成员的指针
指向成员的指针
#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;
}
结果如下:
指向成员的指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。