我来自C#世界,所以事件和事件处理程序是日常的东西。 最近我一直在研究wxWidgets 我一直在搜索这个问题已经有一个星期了,我发现大多数C++程序员很难理解术语“事件”或“回调”,也许它在C++世界中是模棱两可的。C++成员函数指针或事件驱动编程
下面是事件模型的一个简单示例。
class A{
public:
A(){
child.MySuperClickEvent = this.HandleSuperClick;
}
private:
B child;
void HandleSuperClick(B child){
// do stuff
}
}
class B{
public:
/*TBA*/ MySuperClickEvent;
private:
void ClickPrivate(){
MySuperClickEvent(this);
}
}
B类有它自己的指定目的,当它完成时触发一个事件。 这个想法是,B类不应该有任何关于它的领域的知识,使它更可重用。
我已阅读关于std :: function <>和函数指针。所有这些似乎都在处理静态功能方面举了一些例子,但只要“会员对会员”的言论开始变得油腻起来。
总之,问题很简单。我如何制作一个可以从外部分配给成员的成员函数指针?
什么是“小孩”? – immibis
更新了问题。这有意义吗? – CyberFox