成员指针的语法要求选择一个对象的同时间接引用成员指针。
指针需要地址,但类内部没有地址;选择类成员意味着在类内部偏移。只有把这个偏移和具体对象的开始地址结合才能够得到实际地址。
两个限定: (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)
本文深入讲解了成员指针的概念及用法,解释了如何通过成员指针间接引用类中的成员变量,并提供了具体的代码示例来展示成员指针的初始化与使用。

被折叠的 条评论
为什么被折叠?



