社区
C++ Builder
帖子详情
bcb中类的Free()函数与delete有啥区别?
coolspac
2011-10-10 11:25:07
在bcb中如果我new出一个vcl的类
例如
TImage* img=new TImage();
那么释放的时候,是用
img->Free()
还是delete img
?
两者有啥区别?
...全文
246
11
打赏
收藏
bcb中类的Free()函数与delete有啥区别?
在bcb中如果我new出一个vcl的类 例如 TImage* img=new TImage(); 那么释放的时候,是用 img->Free() 还是delete img ? 两者有啥区别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lhy
2011-10-11
打赏
举报
回复
我觉得Free更安全一些。
缘中人
2011-10-11
打赏
举报
回复
delete 放心
asong200
2011-10-11
打赏
举报
回复
用new时,一般用delete来删除。
coolspac
2011-10-11
打赏
举报
回复
多谢以上各位,也就是说本质上来说delete和free()达到的效果一样,差别只在可读性?
纯冰糖
2011-10-11
打赏
举报
回复
我一般这么写的
try
{
TStringList sl=new TStringList();
...
}
__finally
{
delete sl;
sl=NULL;
}
wangcftxz
2011-10-11
打赏
举报
回复
free() 是 VCL 对自身对象的释放的方法,也就是释放自己
delete 是 C++ 对对象的释放方法,释放某某对象
就释放本身而言,本质上没啥区别
从代码维护来说,Free 更省事些,但从可读性而言,我更倾向用 delete 来释放对象
毕竟,有 New 还得有个 Delete,而且 Delete 后还可以显示的置对象指针为 NULL,用于在其它方法访问该对象时作一些必要的检测
纯冰糖
2011-10-11
打赏
举报
回复
Free应该是适应Pascal的VCL的方法
纯冰糖
2011-10-11
打赏
举报
回复
使用new时,我一般都使用delete释放
ccrun.com
2011-10-11
打赏
举报
回复
3楼回答的很好,8楼不了解VCL。
lhy
2011-10-11
打赏
举报
回复
[Quote=引用 8 楼 maliang799 的回复:]
malloc和free是库函数 new和delete是运算符,一一对应,new出来的用deleted, new和delete会调用对象的构造函数和析构函数,free不会调用
[/Quote]
你不是C++ Builder程序员,楼主说的Free是TObject的方法。
茹果伱在
2011-10-11
打赏
举报
回复
malloc和free是库函数 new和delete是运算符,一一对应,new出来的用deleted, new和delete会调用对象的构造函数和析构函数,free不会调用
[转]C++
free
与
delete
区别
free
函数
是由C语言继承而来的,是和malloc配对的,而不能和new配对。
free
释放内存的和
delete
可以说是两套代码,它们的逻辑不同,不能混用。用new申请的就要用
delete
翻译,用malloc申请的就要用
free
释放。 顺便说一下它们还有一个
区别
,
free
只是告诉操作系统回收内存,而
delete
会先调用类的析构
函数
,然后才告诉操作系统回收内存。 下面是收藏的一个帖...
常用的
BCB
函数
文件: ActnList CreateAction
函数
创建一个指定类型的Action,显示在action list editor中。 EnumRegisteredAction 过程 枚举已经注册的Action RegisterAction 过程 注册Action UnRegisterAction 过程 反注册Action 文件: Classes Bounds
函数
常用的
BCB
& Delphi
函数
====================================================== 注:本文源代码点此下载 ====================================================== 翻译的不好,请见谅。 翻译:鲁小班 文件: actnlist createaction
函数
创建一个指定类型的action,显示在acti
BCB
:如何在
BCB
中使用CodeGuard
www.educity.cn发布者:xjxyj2006 来源:网络转载发布日期:2013年12月13日文章评论发表文章 一、 为什么写这篇东西 自己在使用
BCB
5 写一些程序时需要检查很多东西,例如内存泄漏、资源是否有释放等等,在使用了很多工具后,发觉
BCB
5 本身自带的工具—— CodeGuard ,非常不错,使用也挺方便的,但是摸索了很久(以及翻查了一些资...
c与c++的
区别
(二)结构体
区别
、new与
delete
、内存池、string类型
结构体
区别
类型上不再需要struct关键字,直接用结构体名即可 C++结构体中允许
函数
存在 在结构体中声明,在结构体外实现,当然可以直接在结构体中实现 结构体中
函数
访问数据,是可以直接访问 学会调用,和数据成员方式时一样的 对象(结构体变量).成员 对象指针->成员 (*对象指针).成员(装杯用法) C++在没有写构造
函数
和权限限定的时候,用法和C语言的用法是一
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章