問題タブ [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.
c++ - C++ デストラクタの質問
以下のサンプル コードで、基底クラスのデストラクタが 2 回呼び出されるのはなぜですか?
プログラムを実行したときの出力のサンプルを次に示します。
wpf - WPF デストラクタ
XBAP アプリケーションのデストラクタを記述する正しい方法を知っている人はいますか?
python - オブジェクト破壊時の内部pysqlite接続のクリーンアップ
存続期間を通じてアクティブな内部データベース接続を持つオブジェクトがあります。プログラムの実行の最後に、接続をコミットして閉じる必要があります。これまで明示的なclose
メソッドを使用してきましたが、これは、特に呼び出し元のコードで例外が発生する可能性がある場合は、やや面倒です。
クロージングの方法を考えてい__del__
ますが、オンラインで読んだ後、心配です。これは有効な使用パターンですか?内部リソースが__del__
正しく解放されることを確認できますか?
この議論は同様の質問を提起しましたが、満足のいく答えは見つかりませんでした。私のオブジェクトはopen-play-closeのように単純に使用されるのではなく、それを使用する別のより大きなオブジェクトのメンバーとして保持されるため、明示的なclose
メソッドは必要ありません。 with
GUIでの実行中。
C ++には、リソースを安全に解放できる完全に機能するデストラクタがあるので、Pythonにも合意されたものがあると思います。何らかの理由でそうではないようで、コミュニティの多くは反対を誓い__del__
ます。では、代替案は何ですか?
wcf - クライアント側で「Close」メソッドを呼び出さずにクライアントアプリケーションを閉じたときに、WCFがオブジェクトを破棄しないのはなぜですか?
私は次のようにネットtcpWCFサービスを持っています
次のようにクライアント側でオブジェクトを作成する場合
コンストラクターが呼び出されますが、close mehotdを呼び出さずにクライアントアプリケーションを閉じると、デストラクタが呼び出されませんか?なぜ?これは、サービスオブジェクトがサーバー上で引き続き機能することを意味しますか?
c++ - デストラクタを呼び出すと、オブジェクトが明示的に完全に破棄されますか?
デストラクタを明示的に呼び出すと(myObject。〜Object())、これにより、オブジェクトが適切に破棄されることが保証されますか(すべての子デストラクタを呼び出す)?
いくつかのコードをOK:
オブジェクトを削除できることはわかっていますが、削除したくありません。重要な最適化として、割り当てられたメモリを手元に置いておきたい。
ありがとう!
c# - C#では、クラスのデストラクタとFinalizeメソッドの違いは何ですか?
クラスのデストラクタと Finalize メソッドの違いは何ですか?
私は最近、Visual Studio 2008 がデストラクタを Finalize メソッドと同義と見なしていることを発見しました。つまり、Visual Studio ではクラス内で両方のメソッドを同時に定義することはできません。
たとえば、次のコード フラグメント:
デストラクタで Finalize を呼び出すと、次のエラーが発生します。
次のメソッドまたはプロパティ間の呼び出しがあいまいです: 'TestFinalize.~TestFinalize()' と 'TestFinalize.Finalize()'
また、Finalize の呼び出しがコメント化されている場合、次のエラーが発生します。
タイプ 'ManagementConcepts.Service.TestFinalize' は、同じパラメーター タイプで 'Finalize' というメンバーを既に定義しています
c++ - C ++でメソッドをコンストラクタではなくデストラクタに指定するにはどうすればよいですか?
C++ でメソッドをコンストラクタではなくデストラクタに指定するにはどうすればよいですか? これは私をとても混乱させます。両者の違いがわかりません。
c++ - デストラクタの問題
これは私の addCard 関数で、playingCard をパラメーターとして取り、それ自体のアドレスを、playingCard オブジェクトへのポインターの割り当てられた配列に渡します。
プログラムを実行すると正常に動作しますが、デストラクタが呼び出されるとクラッシュします。
addCard関数でplayingCardオブジェクトのアドレスを渡すだけなので、クラッシュしていますか? 代わりにポインタにする必要がありますか?