2009-11-07 164 views

回答

5

delete將釋放內存在非託管動態分配的C++
Dispose將迫使支配對象的自定義對象實現維護託管C++/CLI

2

我假設這與.NET託管的C++有關,因爲標準C++沒有「處置」的意義。

刪除將釋放用於存儲對象的內存;此內存返回堆並可用於其他存儲要求。

Dispose將使對象有機會釋放它獲取的資源,例如文件句柄等。標準C++會在析構函數中看到這種類型的任務。

3

在有沒有dispose運營商(或標準函數,或同類的東西)標準C++ - 你是否想過一些特定的專有框架,比如微軟的.NET「managed C++」? delete標準,這的確是一個經營者,必須在任何符合標準的實施行爲like this - 這是與運營商dispose的主要區別,也與運營商unicorntoothfairy的主要區別,以及santaclaus,這有很多共同點因爲這些都不存在! - )[[Sorry Virginia!!]]

+0

大聲笑... ...最佳答案,只是爲了添加Dispose是一種黑客攻擊手段,只有在他們最終聽取了社區的意見並引入了一種模式,後來纔有一個關鍵字的情況下,他們在2000/1年才被迫使用受空氣污染的雷德蒙德設計師。它已經太晚了,幾年後,他們開始膨脹一切Java Java風格,最顯着的例子是在服務和UI技術。很好,他們意識到'非託管'資源實際上存在於宇宙中的物理,計算和其他星系。唉,有些事情永遠不會改變,儘管在c#@msdn.com上聆聽了一兩分鐘。 –