{"id":116,"date":"2014-05-13T06:11:59","date_gmt":"2014-05-12T21:11:59","guid":{"rendered":"http:\/\/csharp.ihavenomoney.co.kr\/?p=116"},"modified":"2014-05-31T19:29:10","modified_gmt":"2014-05-31T10:29:10","slug":"%ec%97%b0%ec%82%b0%ec%9e%90-%ec%83%98%ed%94%8c","status":"publish","type":"post","link":"https:\/\/csharp.ihavenomoney.co.kr\/?p=116","title":{"rendered":"* ->* \uc5f0\uc0b0\uc790 \uc0d8\ud50c"},"content":{"rendered":"<pre id=\"code_snippet_20\" style=\"position:relative;width:100%;border:0;padding:0;\">#include &quot;stdafx.h&quot;\r\n\r\nclass CStateManager\r\n{\r\nprivate:\r\n    \/\/\/ 0: idle state\r\n\t\/\/\/ 1: attack state\r\n\t\/\/\/ 2: game over state\r\n\r\n\tint m_iState;\r\n\r\n\tvoid State_Idle();\r\n\tvoid State_Attack();\r\n\tvoid State_GameOver();\r\n\r\npublic:\r\n\tCStateManager();\r\n\tvoid SetState(int state);\r\n\tvoid DoIt();\r\n}; \/\/Class CStateManager\r\n\r\nvoid CStateManager::State_Idle()\r\n{\r\n\tprintf(&quot;idle\\n&quot;);\r\n}\r\n\r\nvoid CStateManager::State_Attack()\r\n{\r\n\tprintf(&quot;Attack\\n&quot;);\r\n}\r\n\r\nvoid CStateManager::State_GameOver()\r\n{\r\n\tprintf(&quot;Game Over\\n&quot;);\r\n}\r\n\r\n\/\/\uc0dd\uc131\uc790\r\nCStateManager::CStateManager()\r\n{\r\n\tm_iState =0;\r\n}\r\n\r\nvoid CStateManager::SetState(int state)\r\n{\r\n\tm_iState = state;\r\n}\r\n\r\nvoid CStateManager::DoIt()\r\n{\r\n\t\/\/switch(m_iState)\r\n\t\/\/{\r\n\t\/\/case 0:\r\n\t\/\/\tState_Idle();\r\n\t\/\/\tbreak;\r\n\t\/\/case 1:\r\n\t\/\/\tState_Attack();\r\n\t\/\/\tbreak;\r\n\t\/\/case 2:\r\n\t\/\/\tState_GameOver();\r\n\t\/\/\tbreak;\r\n\t\/\/}\r\n\tstatic void(CStateManager::*fp[3])()=\r\n\t{\r\n\t\t&amp;CStateManager::State_Idle,\r\n\t\t&amp;CStateManager::State_Attack,\r\n\t\t&amp;CStateManager::State_GameOver\r\n\t};\r\n\t(this-&gt;*fp[m_iState])();\r\n}\r\n\r\nint main()\r\n{\t\r\n\tvoid (CStateManager::*fp)(int);  \/\/pinter to a member function\r\n\r\n\tfp = &amp;CStateManager::SetState;\r\n\r\n\tCStateManager sman;\r\n\r\n\t\/\/sman.SetState(0);\r\n\t\/\/sman.DoIt();\r\n\r\n\t(sman.*fp)(1);\r\n\tsman.DoIt();\r\n\r\n\t(sman.*fp)(2);\r\n\tsman.DoIt();\r\n\t\r\n\tchar c;\r\n\tscanf(&quot;%c&quot;,&amp;c);\/\/stop\r\n\r\n\treturn 0;\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-116","post","type-post","status-publish","format-standard","hentry","category-c"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/116","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=116"}],"version-history":[{"count":1,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/116\/revisions"}],"predecessor-version":[{"id":117,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/116\/revisions\/117"}],"wp:attachment":[{"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/csharp.ihavenomoney.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}