0

動的メモリ割り当てに関して、「削除」と「破棄」C++ 演算子の違いは何ですか?

4

3 に答える 3

5

deleteアンマネージ C++ で動的に割り当てられたメモリを解放します
Disposeマネージ C++/CLI で破棄可能なオブジェクトのメンテナンスを実装したカスタム オブジェクトを強制します

于 2009-11-07T06:23:24.750 に答える
3

標準 C++ にはdispose演算子 (または標準関数など) はありません。Microsoft の .NET の「マネージド C++」など、特定の独自のフレームワークを考えていますか? delete 標準であり、実際には演算子であり、標準準拠の実装ではこのように動作する必要があります。これが operator との主な違いであり、 operator 、、およびdisposeとの主な違いでもあります。 -) [[バージニアさんごめんなさい…!]]unicorntoothfairysantaclaus

于 2009-11-07T06:24:07.883 に答える
2

標準 C++ には「破棄」の意味がないため、これは .NET マネージ C++ に関連していると思います。

Delete は、オブジェクトの格納に使用されたメモリを解放します。このメモリはヒープに戻り、他のストレージ要件に使用できます。

Dispose は、オブジェクトが取得したリソース (ファイル ハンドルなど) を解放する機会をオブジェクトに与えます。標準 C++ では、この種のタスクがデストラクタで実行されます。

于 2009-11-07T06:23:19.923 に答える