#include
#include
using namespace std;
class Screen{
public:
// typedef std::string::size_type index;
typedef Screen& (Screen::*ActionF)();//函数指针
static ActionF Menu[];//函数指针表
Screen& home();
Screen& forward();
//private:
// std::string contents;
// index cursor;
// index height,width;
enum Directions{HOME,FORWARD};
Screen& move(Directions);
};
Screen::ActionF
Screen::Menu[]={Screen::home,Screen::forward};
Screen& Screen::home()
{
cout<<"home\n";
return *this;
}
Screen& Screen::forward()
{
cout<<"forward\n";
return *this;
}
Screen& Screen::move(Directions cm)
{
(this->*Menu[cm])();
return *this;
}
int main()
{
Screen sc;
sc.move(Screen::HOME);
return 1;
}