1.定义成员函数指针;
typedef void(CTest::* PROC_FUNC)();
2.成员函数作为入参的书写格式;
call(&className::functionName);
3.调用类成员函数指针的格式;
(this->*func)();
待扩展:用C函数调用C++成员函数怎么调用?涉及到静态成员要怎么处理?---------------
class CTest;
typedef void(CTest::* PROC_FUNC)();
void traverse(PROC_FUNC proc);
class CTest
{
public:
void proc_a(){};
void proc_b(){};
void run();
void traverse(PROC_FUNC proc);
private:
int m_a;
};
void CTest::traverse(PROC_FUNC proc)
{
(this->*proc)();
}
void CTest::run()
{
traverse(&CTest::proc_a);
traverse(&CTest::proc_b);
}
int main()
{
CTest ct;
ct.run();
}