今天在看《STL源码剖析》的函数适配器那一章节的时候,看到出现这种语法(p->*f)(),以前从来没注意到->*的用法,于是查了一些资料。
C++中->*运算符主要是结合成员指针(pointer-to-member)进行使用,所谓的成员指针是指向类成员变量或者成员函数的指针。注意这里说类,并没有说对象。这是是因为实际上它仅仅是一个偏移量,并与任何对象都没有关系。
指向成员指针的例子如下:
注意成员指针是受限制的,他们紧紧能被指定给在类中的确定的位置。例如我们不能像使用普通指针那样增加或者比较成员指针。