1.成员变量指针
Student s1;
string* p = &s1.name; // 普通指针,而非成员指针
1)定义:类型 类名::*成员指针变量名 = &类名::成员变量;
2)使用:对象.*成员指针变量名
其中”.*”被称为成员指针解引用运算符
对象指针->*成员指针变量名
其中”->*”被称为间接成员指针解引用运算符
3)成员变量指针的本质就是类中特定成员变量在对象中的相对地址。
2.成员函数指针
1)定义:返回类型 (类名::*成员函数指针) (形参表) = &类名::成员函数名;
2)使用:(对象.*成员函数指针) (实参表);
(对象指针->*成员函数指针) (实参表);
3)成员函数指针中存放的就是成员函数在代码区中的绝对地址,但是为了提供this指针,同样需要通过对象或对象指针调用。
3.静态成员指针
静态成员指针与普通指针在定义、使用和语义上没有任何区别。