c++:成员指针运算符 .* 和 ->*

有一种特殊的指针叫做成员指针,它们通常指向一个类的成员,而不是对象中成员的特定实例。

成员指针并不是真正的指针,它只是成员在对象中的偏移量,它们分别是:.* 和 ->* 。

一个例子:

class ClassName {public: int foo(int); }

int (ClassName::*pmf)(int) = &ClassNmae::foo;

ClassName  c;    //.*的用法,经由对象调用
(c.*pmf)(5);

ClassName *pc = &c;  //->*的用法,经由对象指针调用
(Pc->*pmf)(6);
->*只是把c变为对象指针

参考:http://vipjy2008.blog.163.com/blog/static/372087672013933226346/

http://zhidao.baidu.com/link?url=TVPi6OfAvwfWiIob_FLQloCpSX0s59qJiAbpCNllXu8wirVyA-_vM8YpUmJjxHYAY8sQgbF0y4m9jbkbwdJuYq

你可能感兴趣的:(c++:成员指针运算符 .* 和 ->*)