C++中的成员指针(pointer-to-member)

来源:互联网 发布:西班牙 知乎 编辑:程序博客网 时间:2024/04/30 12:06

今天在看《STL源码剖析》的函数适配器那一章节的时候,看到出现这种语法(p->*f)(),以前从来没注意到->*的用法,于是查了一些资料。


C++中->*运算符主要是结合成员指针(pointer-to-member)进行使用,所谓的成员指针是指向类成员变量或者成员函数的指针。注意这里说类,并没有说对象。这是是因为实际上它仅仅是一个偏移量,并与任何对象都没有关系。

指向成员指针的例子如下:

 

注意成员指针是受限制的,他们紧紧能被指定给在类中的确定的位置。例如我们不能像使用普通指针那样增加或者比较成员指针。