33,322
社区成员




#include <iostream>
class screen
{
public:
screen &up()
{
std::cout << "up" << std::endl;
return *this;
}
screen &down()
{
std::cout << "down" << std::endl;
return *this;
}
screen &left()
{
std::cout << "left" << std::endl;
return *this;
}
screen &right()
{
std::cout << "right" << std::endl;
return *this;
}
enum direction{
UP, DOWN, LEFT, RIGHT, COUNT
};
public:
typedef screen &(screen::*action)();
static action Menu[screen::COUNT];/* =
{
&screen::up, &screen::down, &screen::left, &screen::right
};*/
};
int main()
{
screen::Menu[screen::UP] = &screen::up;
screen::Menu[screen::DOWN] = &screen::down;
screen::Menu[screen::LEFT] = &screen::left;
screen::Menu[screen::RIGHT] = &screen::right;
screen scr;
for(int i=0; i<screen::COUNT; i++)
{
(scr.*(screen::Menu[i]))();
}
return 0;
}