사용자 도구

사이트 도구


kb:cppdelegate

C++ Delegate

콜백 함수 구현.

클래스 멤버 함수 콜백

문법을 자꾸 까먹어 적어둔다.

class TestClass
{
private:
    typedef void (TestClass::*PFN_CALLBACK)(int, int);
 
    PFN_CALLBACK m_pfnCallbacks[3];
 
 
public:
    TestClass()
    {
        m_pfnCallbacks[0] = &TestClass::FirstFunction;
        m_pfnCallbacks[1] = &TestClass::SecondFunction;
        m_pfnCallbacks[2] = &TestClass::ThirdFunction;
    }
 
    void ExecRandom(int which)
    {
        int lparam = rand();
        int rparam = rand();
 
        (this->*m_pfnCallbacks[which])(lparam, rparam);
    }
 
 
private:
    void FirstFunction(int lparam, int rparam) { ... }
    void SecondFunction(int lparam, int rparam) { ... }
    void ThirdFunction(int lparam, int rparam) { ... }
};
 
...
TestClass t;
t.ExecRandom(rand() % 3);

링크

kb/cppdelegate.txt · 마지막으로 수정됨: 2014/11/07 16:36 (바깥 편집)