【发布时间】:2014-05-29 05:07:26
【问题描述】:
我是 C++/CLI 的新手,想了解一下有关释放内存的问题。
想象一个场景,其中:
sampleServer srv = new sampleServer()
while(true)
{
ABC newObject = srv.getItem();
}
ABC^ sampleServer::getItem(){ return gcnew ABC(//LIST OF some parameters);}
现在,除非newObject 调用Dispose,否则由于不断返回的新对象流并没有被释放,内存将继续分配,但不会释放。
如果我不想调用DIspose,唯一的其他方法是让finalizers负责释放内存。
但是,考虑到sampleServer 类,它没有ABS 类的对象作为其成员之一。它仍然能够返回它的新实例,因为 to 类在同一个命名空间中。
所以如果我正在考虑上课sampleServer,我应该怎么称呼Finalizer?
如果思维过程不正确,在上述情况下我将如何释放内存?
【问题讨论】:
标签: c++ .net memory-management c++-cli finalizer