gpt4 book ai didi

visual-studio-2008 - 什么时候应该在 gcnew 分配的对象上调用 delete?

转载 作者:行者123 更新时间:2023-12-04 03:34:08 24 4
gpt4 key购买 nike

我正在阅读以下内容 MSKB例如,他们对托管对象执行删除。

我的印象是,您永远不应该删除垃圾收集的对象,而必须将其留给垃圾收集器。

我错过了什么?

方法四

 //#include <msclr/marshal.h>
//using namespace msclr::interop;
marshal_context ^ context = gcnew marshal_context();
const char* str4 = context->marshal_as<const char*>(str);
puts(str4);
delete context;

最佳答案

delete在 C++/CLI 中只调用 Dispose 托管对象上的方法,如果它实现 System::IDisposable 接口(interface)——如果没有,它实际上是一个 noop。事实上,如果您尝试调用 Dispose自己在托管对象上使用方法,你会得到一个编译器错误 - delete是强制处理对象的惯用语。

需要明确的是,它与内存管理无关,当然请注意,如果大多数可终结对象被释放,它们将更快地被 GC。

关于visual-studio-2008 - 什么时候应该在 gcnew 分配的对象上调用 delete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com