0

C++ で特定のオブジェクトに対してデストラクタが呼び出されると、デストラクタはまずオブジェクトを初期化解除し、次にオブジェクトを削除します。

私が得られないのは、オブジェクトを _de_initialize することの意味です。それはどういう意味ですか、そして何が起こりますか?

4

3 に答える 3

3

あなたが書き直していたと想像してくださいstd::stringchar動的に割り当てた配列を管理しています。文字列オブジェクトが削除されたら、char配列も解放する必要があります。デストラクタはそれを行う場所です。

HANDLEあるいは、Windowsまたは UNIX のファイル記述子を表すものを作成していたのかもしれません。オブジェクトが削除されたら、おそらくそのハンドルまたはファイル記述子を閉じたいと思うでしょう。繰り返しますが、デストラクタはそれを行う場所です。

一般に、デストラクタは、そのオブジェクトに関連付けられているリソースが何であれ、そのリソースを解放する場所です。

于 2013-04-15T02:15:47.823 に答える
2

初期化解除という言葉は、標準では決して言及されていません。それが何を意味するかというと、オブジェクトがファイル ハンドルを解放したり、リソースを解放したりすることなどを意味します。

于 2013-04-15T02:16:56.277 に答える