成员函数指针数组应用

enum enFuncTest
{
    enFuncTest_1 = 0,
    enFuncTest_2,
    enFuncTest_3,
    enFuncTest_Max 
};

class Test
{
public:
    void Init();
    void FunctionTest1(){printf("0 ");};
    void FunctionTest2(){printf("1 ");};
    void FunctionTest3(){printf("2 ");};   
public:
    typedef void (Test::*FuncTest)();
    FuncTest    m_FuncTests[enFuncTest_Max];            //声明
};


void Test::Init()
{
    //赋值
    m_FuncTests[enFuncTest_1] = &Test::FunctionTest1;
    m_FuncTests[enFuncTest_2] = &Test::FunctionTest2;
    m_FuncTests[enFuncTest_3] = &Test::FunctionTest3;

    //使用
    for (int i = 0 ; i < enFuncTest_Max ; i++)
    {
        (this->*m_FuncTests[i])();                //整个成员函数要括起来表示一个整体
    }
}

推荐文章 http://blog.csdn.net/pengzhixi/article/details/4169574

posted on 2012-10-25 10:02  空娴  阅读(167)  评论(0编辑  收藏  举报

导航