c++:メンバーポインタ演算子.*および->*

592 ワード

オブジェクト内のメンバーの特定のインスタンスではなく、通常クラスのメンバーを指すメンバーポインタという特殊なポインタがあります.
メンバー・ポインタは本物のポインタではありません.オブジェクト内のメンバーのオフセット量だけです.それぞれ:.*および->*です.
    :

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