假设我们有一个类,并且在其中我们有一个函数(例如OnTouchListner),当这个方法调用时,这个类中的任何对象都会做各种事情。
任何人都知道如何解决这个问题
我的问题的真实例子是MFC或任何opreation系统所做的工作
下面的代码是我项目的简单形状和摘要代码
namespace MyOS
{
namespace GUI
{
class CControl
{
public :
void OnTouchListner(void); //my wrong solution is void(*OnTouchListner)(void);
};
class CButton : public CControl
{
public :
...
};
}
namespace Core
{
class CKernel
{
private :
EventListner();
};
class CForm
{
public :
CLinkList<GUI::CControl> controls;
...
};
}
namespace StandardDialoges
{
class CKeyPad : public Core::CForm
{
public :
void Designer(void) {
/*my wrong solution
this->btnZ->OnTouchListner = &CKeyPad::btnZ_OnTouch_Listner;
and call this in EventListner
*/
}
GUI::CButton btnZ;
void btnZ_OnTouch_Listner(void) {}
};
}
}
现在我的问题是当事件列表器检测到诸如ontouch事件之类的新事件时,来自控件的调用相关函数
我认为函数指针是这个问题的解决方案,但现在我认为这是错误的方式
请帮我找到解决问题的方法。
非常感谢。