問題タブ [self-destruction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
5704 参照

c++ - 「これを削除する」の使い方は?

今日、いくつかのレガシー コードを見てきました。デストラクタには " " のような文がありdelete thisます。この呼び出しは再帰的だと思います。なぜ機能しているのですか?

Y! を簡単に検索したところ、ユーザーがスタック オブジェクトを作成することを制限する必要がある場合は、デストラクタを非公開にし、インスタンスを削除するためのインターフェイスを提供できることがわかりました。提供されたインターフェイスでは、このポインターで delete を呼び出す必要があります。

そのようなステートメントを使用する他の状況はありますか?

0 投票する
11 に答える
21018 参照

c++ - オブジェクトはC++で自分自身を削除する必要がありますか?

過去 4 年間 C# に携わってきたので、C++ の現在のベスト プラクティスと一般的な設計パターンに興味があります。次の部分的な例を考えてみましょう。

ここでは、一連のオブジェクトを管理し、それらを定期的に更新する責任を負う世界があります。火は、さまざまな状況下でワールドに追加される可能性のあるオブジェクトですが、通常は既にワールドにある別のオブジェクトによって追加されます。火はいつ燃え尽きたかを知る唯一のオブジェクトなので、現在はそれ自体を削除しています。火災を引き起こしたオブジェクトは、おそらく存在しないか、関連性がありません。

これは賢明なことですか、それともこれらのオブジェクトをクリーンアップするのに役立つより良い設計はありますか?

0 投票する
10 に答える
28065 参照

c++ - 「これを削除」しても安全ですか?

私の最初の基本的なテストでは、そうすることは完全に安全です。ただし、this関数内で後で操作しようとdeleteするthisと、実行時エラーになる可能性があることに気付きました。これは本当で、通常は安全delete thisですか? それとも安全な特定のケースだけですか?

0 投票する
4 に答える
8482 参照

delphi - Delphi: フォームがそれ自体を解放しても大丈夫ですか?

いくつかの情報を数秒間表示するために使用するフォームがあります。フォーム自体を解放しても問題ありませんか? コンストラクターでタイマーを開始してから、タイマー イベントで self.free を呼び出すことはできますか? それとも、これがトラブルにつながる可能性がありますか?

0 投票する
8 に答える
2695 参照

c++ - 「これを削除」を使用して現在のオブジェクトを削除しても大丈夫ですか?

リンクリストを作成していますが、構造体のデストラクタ(ノード構造体)がそれ自体を削除するだけで、副作用が発生しないようにする必要があります。次のように、リストのデストラクタがそれ自体でノードデストラクタを繰り返し呼び出す(次のノードを一時的に保存する)ようにします。

したがって、これは私のノードデストラクタになります。

これは、特にこのコンテキストでは受け入れられますか?

0 投票する
7 に答える
37468 参照

c# - 1 つの実行可能ファイル内の C# の自己削除可能なアプリケーション

ある条件で自分自身を削除できるアプリケーションを C# で作成することは可能ですか。

アプリケーションのアップデーターを作成する必要がありますが、更新プロセス後に実行可能ファイルを残したくありません。

公式の .Net OneClick がありますが、HTTP サーバーとの互換性がなく、OneClick 自体に問題があるため、自分で作成する必要があります。

ジョージ。

[編集] 詳細:

アップデーターをダウンロードするアプリケーション実行可能ファイル (「パッチ」ですが、正確ではありません) この「パッチ」は、アプリケーション実行可能ファイル自体を更新します。

アプリケーションは次のように実行されます。

0 投票する
4 に答える
951 参照

c++ - クラス内の関数を使用して、動的に割り当てられたクラスを削除できますか?

ゲームの状態マネージャーを書いています。これをどのように行うかについて、ほとんどのロジックがダウンしています。クラスになる状態は、StateManager クラスのスタックで処理する必要があります。各ステートには一時停止機能があり、スタックは STL スタックになります。

必要な処理が完了した状態 (例: 一時停止画面から、ユーザーが [ゲームに戻る] をクリックした場合) は、スタックから削除して削除する必要があります。私の現在のロジック(残念ながらテストできませんでした)は次のようになります。

国はその仕事を終える。その更新関数では、完了したことがわかると、関数を呼び出して状態をクリーンアップします。この関数は、関連付ける必要がある即時のルーズ エンド (存在する場合) を処理し、状態マネージャー スタックから pop 関数を呼び出し、それ自体を削除します。

私が求めているのは、クラスをそれ自体から削除できますか?

0 投票する
12 に答える
2068 参照

c++ - Should "delete this" be called from within a member method?

I was just reading this article and wanted SO folks advice:

Q: Should delete this; be called from within a member method?

0 投票する
11 に答える
14640 参照

c# - .NETアプリケーションを自動的に消去するにはどうすればよいですか?

C#アプリを自動的に消去(自己破壊)するにはどうすればよいですか?これが私がうまくいくと思う2つの方法です:

  • メインプログラムを削除する別のプログラムを提供します。しかし、この削除プログラムはどのように削除されますか?
  • 数秒待ってからファイルを削除するCMDへのプロセスを作成します。これらの数秒間に、アプリケーションを閉じます。

これらの方法はどちらも非効率的です。Windowsには、そのような機能を可能にするフラグなどが組み込まれているように感じます。どうすればいいですか?また、サンプルコードを提供してもらえますか?

更新:すべての回答をありがとう!私はそれらを試してみて、それが私をどこに導くかを見ていきます。

まず第一に、なぜ私のアプリにこれをさせたいのかと尋ねる人がいます。答えは次のとおりです。数日前、JoelSpolskyがブログに投稿したProjectAardvarkの仕様を読みましたが、リモートセッション後にクライアントアプリが自動的に削除されるとのことでした。これがどのように機能するのか、そしてこれを行う必要がある場合、どのようにしてそのような偉業を達成できるのか疑問に思っています。

提案された内容の概要は次のとおりです。

  • 再起動時にファイルを削除するようにWindowsに指示するレジストリエントリを作成します
  • pingコマンドを使用してCMDを起動し、数秒待ってからファイルを削除します

もちろん、コメントで概説されているように、これらの両方には欠点があります。

しかし、以下に概説するような方法は機能しますか?

Program.exeとCleaner.exeの2つの実行可能ファイルがあります。前者はプログラム自体であり、後者はProgram.exeとそれ自体を削除するアプリです(これから説明するように、メモリにロードされている場合)。Program.exe(依存関係がある)が依存関係のないCleaner.exeをすべてメモリにロードして実行することは可能ですか?

これが可能な場合、Cleaner.exeをProgram.exe内にパッケージ化し、メモリにロードして実行できますか?