成员指针的语法要求选择一个对象的同时间接引用成员指针。
指针需要地址,但类内部没有地址;选择类成员意味着在类内部偏移。只有把这个偏移和具体对象的开始地址结合才能够得到实际地址。
两个限定: (1)类 (2)类型
例如:
objectPointer->*pointerToMember = 47
objectPointer.*pointerToMember = 47
int ObjectClass:: *pointerToMember 该指针指向在 ObjectClass 类中的任一 int类型成员
可以在定义的时候初始化这个成员指针
int ObjectClass:: * pointerToMember = &ObjectClass::a
int main(){
Dat d,*dp = &d;
int Data::*pmInt = &Data::a;
dp->*pmInt = 47;
pmInt = &Data::b;
d.*pmInt = 48;
pmInt = &Data::c;
dp->*pmInt = 49;
...
}
注意理解 &Data::a 等于 &(Data::a)