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

阅读数:44 评论数:0

跳转到新版页面

分类

C/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变为对象指针