問題タブ [destructor]

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 投票する
8 に答える
527 参照

c++ - C++ デストラクタの質問

以下のサンプル コードで、基底クラスのデストラクタが 2 回呼び出されるのはなぜですか?

プログラムを実行したときの出力のサンプルを次に示します。

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

wpf - WPF デストラクタ

XBAP アプリケーションのデストラクタを記述する正しい方法を知っている人はいますか?

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

python - オブジェクト破壊時の内部pysqlite接続のクリーンアップ

存続期間を通じてアクティブな内部データベース接続を持つオブジェクトがあります。プログラムの実行の最後に、接続をコミットして閉じる必要があります。これまで明示的なcloseメソッドを使用してきましたが、これは、特に呼び出し元のコードで例外が発生する可能性がある場合は、やや面倒です。

クロージングの方法を考えてい__del__ますが、オンラインで読んだ後、心配です。これは有効な使用パターンですか?内部リソースが__del__正しく解放されることを確認できますか?

この議論は同様の質問を提起しましたが、満足のいく答えは見つかりませんでした。私のオブジェクトはopen-play-closeのように単純に使用されるのではなく、それを使用する別のより大きなオブジェクトのメンバーとして保持されるため、明示的なcloseメソッドは必要ありません。 withGUIでの実行中。

C ++には、リソースを安全に解放できる完全に機能するデストラクタがあるので、Pythonにも合意されたものがあると思います。何らかの理由でそうではないようで、コミュニティの多くは反対を誓い__del__ます。では、代替案は何ですか?

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

wcf - クライアント側で「Close」メソッドを呼び出さずにクライアントアプリケーションを閉じたときに、WCFがオブジェクトを破棄しないのはなぜですか?

私は次のようにネットtcpWCFサービスを持っています

次のようにクライアント側でオブジェクトを作成する場合

コンストラクターが呼び出されますが、close mehotdを呼び出さずにクライアントアプリケーションを閉じると、デストラクタが呼び出されませんか?なぜ?これは、サービスオブジェクトがサーバー上で引き続き機能することを意味しますか?

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

c++ - デストラクタを呼び出すと、オブジェクトが明示的に完全に破棄されますか?

デストラクタを明示的に呼び出すと(myObject。〜Object())、これにより、オブジェクトが適切に破棄されることが保証されますか(すべての子デストラクタを呼び出す)?

いくつかのコードをOK:

オブジェクトを削除できることはわかっていますが、削除したくありません。重要な最適化として、割り当てられたメモリを手元に置いておきたい。

ありがとう!

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

c# - C#では、クラスのデストラクタとFinalizeメソッドの違いは何ですか?

クラスのデストラクタと Finalize メソッドの違いは何ですか?

私は最近、Visual Studio 2008 がデストラクタを Finalize メソッドと同義と見なしていることを発見しました。つまり、Visual Studio ではクラス内で両方のメソッドを同時に定義することはできません。

たとえば、次のコード フラグメント:

デストラクタで Finalize を呼び出すと、次のエラーが発生します。

次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'TestFinalize.~TestFinalize()' と 'TestFinalize.Finalize()'

また、Finalize の呼び出しがコメント化されている場合、次のエラーが発生します。

タイプ 'ManagementConcepts.Service.TestFinalize' は、同じパラメーター タイプで 'Finalize' というメンバーを既に定義しています

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

c++ - C ++でメソッドをコンストラクタではなくデストラクタに指定するにはどうすればよいですか?

C++ でメソッドをコンストラクタではなくデストラクタに指定するにはどうすればよいですか? これは私をとても混乱させます。両者の違いがわかりません。

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

c++ - デストラクタの問題

これは私の addCard 関数で、playingCard をパラメーターとして取り、それ自体のアドレスを、playingCard オブジェクトへのポインターの割り当てられた配列に渡します。

プログラムを実行すると正常に動作しますが、デストラクタが呼び出されるとクラッシュします。

addCard関数でplayingCardオブジェクトのアドレスを渡すだけなので、クラッシュしていますか? 代わりにポインタにする必要がありますか?