動的メモリ割り当てに関して、「削除」と「破棄」C++ 演算子の違いは何ですか?
3 に答える
delete
アンマネージ C++ で動的に割り当てられたメモリを解放します
Dispose
マネージ C++/CLI で破棄可能なオブジェクトのメンテナンスを実装したカスタム オブジェクトを強制します
標準 C++ にはdispose
演算子 (または標準関数など) はありません。Microsoft の .NET の「マネージド C++」など、特定の独自のフレームワークを考えていますか? delete
は標準であり、実際には演算子であり、標準準拠の実装ではこのように動作する必要があります。これが operator との主な違いであり、 operator 、、およびdispose
との主な違いでもあります。 -) [[バージニアさんごめんなさい…!]]unicorn
toothfairy
santaclaus
標準 C++ には「破棄」の意味がないため、これは .NET マネージ C++ に関連していると思います。
Delete は、オブジェクトの格納に使用されたメモリを解放します。このメモリはヒープに戻り、他のストレージ要件に使用できます。
Dispose は、オブジェクトが取得したリソース (ファイル ハンドルなど) を解放する機会をオブジェクトに与えます。標準 C++ では、この種のタスクがデストラクタで実行されます。