struct hoge
{
typedef void state_t(int);
state_t hoge1, hoge2; // メンバ関数の宣言
state_t hoge::* state; // メンバ変数
};
void hoge::hoge1(int)
{
std::cout << "hoge1" << std::endl;
state = &hoge::hoge2;
}
void hoge::hoge2(int)
{
std::cout << "hoge2" << std::endl;
state = &hoge::hoge1;
}
int main()
{
hoge h;
h.state = &hoge::hoge1;
std::cout << sizeof(h) << std::endl;
(h.*(h.state))(0);
(h.*(h.state))(0);
(h.*(h.state))(0);
(h.*(h.state))(0);
}
0 件のコメント:
コメントを投稿