65,210
社区成员
发帖
与我相关
我的任务
分享
class base_item
{
public:
void (base_item::*Handler)(void);
void AssignHandler(void (base_item::*handler)(void))
{
Handler=handler;
}
};
class derived_item:public base_item
{
public:
void func1(void)
{
};
void func2(void)
{
this->Handler=func1;
(this->*Handler)();
}
void func3(void)
{
this->AssignHandler(func1);
(this->*Handler)();
}
};
#include <iostream>
using namespace std;
class base_item
{
public:
void (base_item::*Handler)(void);
void AssignHandler(void (base_item::*handler)(void))
{
Handler=handler;
}
void func1(void)
{
}
};
class derived_item:public base_item
{
public:
void func2(void)
{
this->Handler=&base_item::func1;
(this->*Handler)();
}
void func3(void)
{
this->AssignHandler(&base_item::func1);
(this->*Handler)();
}
};
int main()
{
derived_item a;
a.func2();
a.func3();
return 0;
}