0

关于动态内存分配,“删除”和“处置”C++ 运算符有什么区别?

4

3 回答 3

5

delete将释放在非托管 C++ 中动态分配的内存
Dispose将强制自定义对象在托管 C++/CLI 中实现一次性对象的维护

于 2009-11-07T06:23:24.750 回答
3

标准 C++ 中没有dispose运算符(或标准函数,或类似的东西)——您是否在考虑某些特定的专有框架,例如 Microsoft 的 .NET“托管 C++”? delete 标准的,它确实是一个运算符,并且在任何符合标准的实现中必须表现得像这样dispose- 这是与 operator 的主要区别,也是与 operator , 和 的主要区别unicorntoothfairy它们santaclaus有很多共同点,因为这些都不存在! -) [[对不起弗吉尼亚...!]]

于 2009-11-07T06:24:07.883 回答
2

我假设这与 .NET 托管 C++ 有关,因为标准 C++ 没有“处置”的意义。

删除将释放用于存储对象的内存;此内存返回堆,可用于其他存储需求。

Dispose 将使对象有机会释放它获得的资源,例如文件句柄等。标准 C++ 会在析构函数中看到此类任务。

于 2009-11-07T06:23:19.923 回答