类的成员指针
- 指向成员变量的指针 可以通过打印地址来看看其具体含义,其存储的是偏移量,不是实际地址
定义:成员变量的类型 类名::*指针变量名
string Student::*pstr;
赋值:指针变量名 = &类名::成员变量名
pstr = &String::m_name;
解引用:对象.* 指针变量名, 对象指针->.* 指针变量名
cout << stu.*pstr;
cout << ps->*pstr; - 指向成员函数的指针
定义:成员函数的返回类型 (类名::*指针变量名)(形参表)
void (Student::*pfunc)(void)
赋值:指针变量名 = &类名::成员函数名
pfunc = &Student::who;
解引用: (对象.指针变量名)(实参表) (对象指针->. 指针变量名)(实参表)
(stu.*pfunc)();
(ps->.*pfunc)(); - 指向静态成员的指针和普通指针没有区别,不需要特别的语法去描述。