第18章 特殊工具与技术(9) (二)

2014-11-24 12:22:35 · 作者: · 浏览: 5
creen2& down();
};
class Screen2{
public:
Screen2& home();
Screen2& forward();
Screen2& back();
Screen2& up();
Screen2& down();
};4. 使用函数指针表
class Screen2{
public:
Screen2& home();
Screen2& forward();
Screen2& back();
Screen2& up();
Screen2& down();


typedef Screen2& (Screen2::*Method)();
static Method Menu[];


public:
enum Directions{HOME,FORWARD,BACK,UP,DOWN};
Screen2& move(Directions);
};
Screen2& Screen2::move(Directions cm)
{
(this->*Menu[cm])();
return *this;
}
Screen2 myScreen2;
myScreen2.move(Screen2::HOME);
class Screen2{
public:
Screen2& home();
Screen2& forward();
Screen2& back();
Screen2& up();
Screen2& down();


typedef Screen2& (Screen2::*Method)();
static Method Menu[];


public:
enum Directions{HOME,FORWARD,BACK,UP,DOWN};
Screen2& move(Directions);
};
Screen2& Screen2::move(Directions cm)
{
(this->*Menu[cm])();
return *this;
}
Screen2 myScreen2;
myScreen2.move(Screen2::HOME);5. 定义成员函数指针表
Screen2::Method Screen2::Menu[]={
&Screen2::home,
&Screen2::forward,
&Screen2::back,
&Screen2::up,
&Screen2::down,};

摘自 xufei96的专栏