私はC#の世界から来ており、イベントとイベントハンドラは毎日のものです。 最近、私はwxWidgetsについて勉強していました 私は1週間これについて調べており、ほとんどの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 <>と関数ポインタについて読んだことがあります。これは静的な機能を扱う際にすべての事例を取っているようですが、「Member to Member」のことが話題になるとすぐに、油断してしまいます。
要約すると、問題は簡単です。外部にメンバーに割り当てることができるメンバー関数ポインタを作成するにはどうすればよいですか?
「子」とは – immibis
質問が更新されました。それは理にかなっていますか? – CyberFox