これは問題ではなく、答えてもらいたい質問です。
パーティクルを持つ 2D アプリケーションを作成しています。クリック ハンドラーでは、次のコードを記述しました。
Particle *tempp = new Particle();
tempp->setPosition(mx, my);
particles.push_back(tempp); // typeof particles = std::list<Particle*>
delete tempp; // <- this line is the problem
クリックすると、マウスの位置にパーティクルが 1 つ作成されます。約 1 秒後に消えますが、問題なく動作します。消えたら、もう一度クリックして新しいパーティクルを作成します。
しかし、画面上にパーティクルが 1 つ残っているときにクリックすると、プログラムがフリーズして動作を停止します。
クラスの私のデストラクタとそのParticle
親のデストラクタは両方とも空です。
delete
一度に複数のパーティクルを使用したり、フレームごとに複数のパーティクルを使用したりしても、プログラムを呼び出さずに正常に実行されます。この凍結の問題を引き起こしているのは何なのかと思っています。