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