posts - 134,comments - 22,trackbacks - 0
普通的指针:通过对象指针来访问对象的成员,调用类的成员函数;
成员函数的指针:通过对象及成员函数指针来调用类的成员函数,仅限于非Static成员函数,Static成员函数通过类名加域限制符直接调用,无需成员指针;
下面是成员函数指针的用法及函数表的使用示例:
 1#include <iostream>
 2
 3using namespace std;
 4
 5class Screen
 6{
 7
 8private:
 9    typedef void (Screen::* Action)();
10    static Action menu[];
11public:
12    void home()
13    {
14        cout<<"home"<<endl;
15    }

16    void left()
17    {
18        cout<<"left"<<endl;
19    }

20    void right()
21    {
22        cout<<"right"<<endl;
23    }

24    void down()
25    {
26        cout<<"down"<<endl;
27    }

28    void up()
29    {
30        cout<<"up"<<endl;
31    }

32
33public:
34    enum Directions{HOME,LEFT,RIGHT,DOWN,UP};
35    void move(Directions);    
36}
;
37
38
39void Screen::move(Directions d)
40{
41    (this->*menu[d])();
42}

43
44Screen::Action Screen::menu[]={
45    &Screen::home,
46    &Screen::left,
47    &Screen::right,
48    &Screen::down,
49    &Screen::up
50}
;
51
52
53int main()
54{
55    Screen s;
56
57    s.move(Screen::LEFT);
58
59    return 0;
60}
posted on 2009-11-13 15:41 何克勤 阅读(196) 评论(0)  编辑  收藏 所属分类: C/C++

只有注册用户登录后才能发表评论。


网站导航: