直接上代码:
class Worm
{
public:
Worm();
private:
void (Worm::*head_fun[4]) ();//定义
void head_east();
void head_west();
void head_north();
void head_south();
void head_choose( const int& );
};
Worm::Worm()
{
head_fun[0] = &Worm::head_east;//赋值
head_fun[1] = &Worm::head_west;
head_fun[2] = &Worm::head_north;
head_fun[3] = &Worm::head_south;
}
void Worm::head_choose( const int& n)
{
(this->*head_fun[ n ]) ();//调用
}
typedef void (Worm::*Worm_fun) ();
Worm_fun head_fun[4];