2009-11-07 47 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上聆听了一两分钟。 –