65,211
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Screen {
public:
typedef Screen& (Screen::*Action) ();
// typedef Screen& (*Action) ();
// int Screen::*pi;
// int i;
Screen& home() {cout<<"home"<<endl; return *this;};
Screen& forward() {cout<<"forward"<<endl; return *this;};
Screen& back() {cout<<"back"<<endl; return *this;};
Screen& down() {cout<<"down"<<endl; return *this;};
Screen& up() {cout<<"up"<<endl; return *this;};
static Action Menu[5];
Screen()
{
// Menu[0] = &home;
// Menu[1] = &forward;
// Menu[2] = &back;
// Menu[3] = &up;
// Menu[4] = &down;
// pi=&i;
}
public:
enum Directions { HOME, FORWARD, BACK, UP, DOWN };
Screen& move(Directions);
};
Screen::Action Screen::Menu[] = {&Screen::home, &Screen::forward, &Screen::back,
&Screen::up, &Screen::down};
Screen& Screen::move(Directions cm)
{
(this->*Menu[cm]) ();
// Menu[cm] ();
return *this;
}
int main()
{
// int Screen::*pm = &Screen::i;
Screen s;
s.move(Screen::HOME);
s.move(Screen::UP);
return 0;
}