書き込もうとしているいくつかのイベントハンドラークラスに問題があります。基本的には、オブジェクトの論理グループごとにイベントハンドラークラスを用意するという考え方です。ほとんどの場合、イベントはオブジェクトとそのハンドラーの間で発生しますが、場合によっては、イベントがハンドラーオブジェクト間でも送信されます。
イベントがスタックに配置されるようにコードを記述しました(ユーザーが作成した構造のようにスタックします。イベント自体はを使用して割り当てられますnew)delete。dは、情報が読み取られて処理された後です。あるケースでは、イベントが3つのハンドラーのチェーンに沿って送信されるため、これは私にいくつかの問題を与えています。たとえば、にHandlerAを送信しますnew Event。HandlerBこれは、スタックに配置して読み取り、に送信します。に送信するとHandlerC、読み取りと実行に必要な処理が実行され、その後delete、イベントポインタがに設定されNULLます。今、私たちは戻ってHandlerB、まあ、それはまたしたいと思っていdeleteますNULLイベントへのポインタ。ただし、ポインタはローカル変数であり、同じアドレスを2回削除することになり、例外が発生します。
これをどのように回避しますか?あなたはそれらの派手なものの1つを使う必要がありますかauto_ptr(まだここでは初期の学習者です)、それとも私はここで基本的な何かを逃していますか?