【发布时间】:2014-10-30 18:55:56
【问题描述】:
通常在带有指针的 C++ 中,如果要创建一个动态对象以作为参数传递给函数,它会这样做
Object *myObj = new Object;
someFunction(myObj);
delete myObj;
myObj = nullptr;
相对
someFunction(new Object);
为了不泄漏内存。现在假设我正在创建一个垃圾收集对象;相同的规则是否仍然适用,或者垃圾收集器实际上能够从函数调用中创建的内存中删除动态创建的对象,如下所示?
someFunction(gcnew Object);
【问题讨论】:
-
分配是否在 () 之间无关紧要。
-
您不再需要跟踪您使用托管 C++ 创建的所有对象。即使您的对象在 () 中创建,您的 C++/CLI 对象也会按预期被垃圾收集器收集和销毁。
标签: memory-management garbage-collection c++-cli managed-c++