关于new和delete的问题(100分)

K

katy

Unregistered / Unconfirmed
GUEST, unregistred user!
我程序里有一个函数大致如下:
TStringList* TMyClass::a(**)
{
TStringList* MyList= new StringList;
*******
return MyList;
}
我在函数内部new了一个TStringList,由于把它作为返回值,所以没有在函数内部delete掉,那我应该在什么地方释放掉这个对象呢?
另外,各位有没有关于指针的好文章或者书籍可以推荐一下,我实在是头大
 
一般不推荐在函数内部创建对象,让调用者管理,这样的画,对象的生命周期不是对应的。
void TMyClass::a(**, TStringList* r)
{
r = new StringList;
*******
return;
}
否则你就自己释放吧。
当然了,另一个选择是,返回值类型是生命周期自管理的。如接口
 
谢谢xiammy,受教:)
 
顶部