bcb中类的Free()函数与delete有啥区别?
在bcb中如果我new出一个vcl的类
例如
TImage* img=new TImage();
那么释放的时候,是用
img->Free()
还是delete img
?
两者有啥区别?
[解决办法]
free() 是 VCL 对自身对象的释放的方法,也就是释放自己
delete 是 C++ 对对象的释放方法,释放某某对象
就释放本身而言,本质上没啥区别
从代码维护来说,Free 更省事些,但从可读性而言,我更倾向用 delete 来释放对象
毕竟,有 New 还得有个 Delete,而且 Delete 后还可以显示的置对象指针为 NULL,用于在其它方法访问该对象时作一些必要的检测
[解决办法]
我一般这么写的
try
{
TStringList sl=new TStringList();
...
}
__finally
{
delete sl;
sl=NULL;
}
[解决办法]