用法:
類:Test
Test.h
class Test
{
public:
Test();
void TestFunPtr();
~Test();
protected:
// 注意此處聲明使用Test::*fun_ptr
void Fun(int (Test::*fun_ptr)(int, int));
int Handler(int a, int b);
};
Test.cpp
Test::Test()
{
}
void Test::TestFunPtr()
{
/// 注意此處調(diào)用
int (Test::*Handler_ptr)(int, int) = &Test::Handler;
Fun(Handler_ptr);
}
void Test::Fun(int (Test::*fun_ptr)(int, int))
{
// 注意this->*fun_ptr 不知道為什么要這么指向场梆,估計(jì)和c++編譯相關(guān)
(this->*fun_ptr)(3, 4);
}
int Test::Handler(int a, int b)
{
printf("%d, %d\n",a, b);
return 1;
}
Test::~Test()
{
}