クロージャとしてのイベント(C++)
イベントとは何か への移動
イベントの実装にはクロージャが使用されます。クロージャは、特定のクラス インスタンスにある特定のメソッドを指す特別なポインタ型です。コンポーネントの作成時には、クロージャをプレース ホルダとして扱えます。つまり、コンポーネントのコードでイベントの発生が検出されるので、そのイベントに対してユーザーから指定されたメソッドがあれば、それを呼び出します。
クロージャでは、クラス インスタンスへの隠しポインタを維持管理しています。ユーザーがコンポーネントのイベントにハンドラを割り当てる場合、その割り当ては、単に特定の名前のメソッドに対してではなく、むしろ特定のクラス インスタンスの特定メソッドに対して行われます。そのインスタンスは通常、そのコンポーネントを含んでいるフォームですが、そうでなくてもかまいません。