問題タブ [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 投票する
6 に答える
1539 参照

c++ - 「これを削除」を実行するときの仮想デストラクタの欠如

C ++ FAQ Liteのセクション16.15で説明delete thisし、次に言及します。

当然、仮想デストラクタがない場合に、このポインタが基本クラスへのポインタである場合は、通常の警告が適用されます。

なぜこれが本当ですか?このコードを考えてみましょう:

このように使用されます:

呼び出しでは、仮想デストラクタがない場合でもp->suicide()、のデストラクタがMyKlass期待どおりに呼び出されます。ISuicidal

私にとって、これは理にかなっています。なぜなら、MyKlass::suicideでは、の静的タイプはでthisあることがわかっているMyKlass*ので、正しいデストラクタが呼び出されるからです。typeidこれは、内に電話をかけることで簡単に確認できsuicideます。

それで、FAQエントリは不正確ですか、それとも私はそれを誤解していますか?

0 投票する
3 に答える
1452 参照

c++ - これを削除するとコードがクラッシュする

これを削除しようとすると、セグメンテーション違反が発生します。

これを削除することについてあなたがどう思うかはわかりますが、私の前任者が残したものです。私が取るべきいくつかの予防措置を認識しており、それらは検証され、対処されています。

どのような状況でこのクラッシュが発生するかはわかりませんが、たまにしかありません。約 95% の場合、コードは完全に正常に実行されますが、何らかの理由で破損しているように見えてクラッシュすることがあります。

クラスのデストラクタは何もしません。

何かが私のヒープを別の場所で破損していて、this ポインターが何らかの形で台無しになっていると想定する必要がありますか?

編集:要求どおり、クラッシュコード:

オブジェクトは new で作成されました。どの種類の配列にもありません。

0 投票する
2 に答える
8574 参照

bash - 自己削除bashスクリプト

自分自身を削除するステートメントに遭遇した後でも、bashスクリプトを実行するにはどうすればよいですか?たとえば、次のようなtest.shスクリプトを実行した場合:

スクリプトは、それ自体を削除する前に最後まで実行されます

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

c++ - QObjectを自己削除する最適な方法

NodeとNodeContainerの2つのクラスがあります。

ノードは親を持つことも持たないこともできます。Nodeクラスの破棄を実装するためのより良い方法は何ですか?

1)親にアクセスし、そこから自分自身を破壊します

2)信号を発し、後で親にそれを破壊させます

0 投票する
5 に答える
6741 参照

c - Cで自己破壊的なプログラムを書くことは可能ですか?

実行時にそれ自体(バイナリ)を削除してから正常に終了するプログラムをCで作成することは可能ですか?もしそうなら、これを行う最も簡単な方法は何ですか?

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

java - 自己破壊アプリケーション

「このテープは 5 秒で自己破壊します。頑張ってください、ジム」 ...

あらかじめ設定された使用時間またはその他の条件に達すると、アプリケーション自体 (または実行可能なラッパー フォーム) を削除することは可能でしょうか?

または、アプリケーションを役に立たなくするために使用できる他のアプローチは何ですか?

ここでの目的は、ベータ版を期限切れにして、ユーザーに最新バージョンを入手してもらうことです。

0 投票する
6 に答える
28035 参照

python - 実行終了時にスクリプトを自動削除するにはどうすればよいですか?

Windowsでの実行(自己削除)の最後に.pyファイルを削除するPythonスクリプトを作成することは可能ですか?

0 投票する
1 に答える
530 参照

visual-c++ - MFC の OnOk から delete this を呼び出す

重複の可能性:
「delete this」はメンバー メソッド内から呼び出す必要がありますか?

以下のコードのように、OnOk イベント ハンドラ関数から delete を呼び出すのが正しいです。

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

c++ - std::vector 要素が「自殺」した場合 (delete this; を使用) はどうなりますか?

Items のベクトルがあるとします。

次に、コードの他の部分で、

suicide関数は次のとおりです。

ベクターサイズとは何itemsですか?現在の配置はどうなっていますか?こんなことしていいの?

編集(追加の質問をしてもよろしいですか?): 出力の目的の配置が{item1, item3}、サイズが2で、ダングリング ポインターがない場合、(それ自体から) 自己破壊的な方法でそれを行う方法はitem2?

編集2:すべての回答をありがとう!素晴らしい。だから私は最終的に決定し、オブジェクトの外からそれを行う方法を見つけました。なぜなら、それは悪い習慣であり、不必要に複雑だったからです