我來自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