社区
C++ Builder
帖子详情
new和delete 的问题
amfer
2003-08-29 12:17:27
像TList,TStringList,TBookMark这样的不可件的东西,new了之后要不要delete?
如果把所有要delete 的东西放在__finally中,是否保证一定能够被delete
new的时候:比如new TForm(this),中的this,Application和NULL到底有什么区别?
...全文
27
7
打赏
收藏
new和delete 的问题
像TList,TStringList,TBookMark这样的不可件的东西,new了之后要不要delete? 如果把所有要delete 的东西放在__finally中,是否保证一定能够被delete new的时候:比如new TForm(this),中的this,Application和NULL到底有什么区别?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wjlsmail
2003-08-29
打赏
举报
回复
可以
TComponent *Component = new TComponent(Classes::TComponent* AOwner[, int Dummy]) ;
// 对象的 Owner 负责对象的构造和拆构(当 Owner 对象释放时释放基于它的控件)
this ---- TForm1 ; // 和 Delphi 中的 Self 同义
Application ---- TApplication //
NULL ---- 有对象自己负责拆构
Tiejun_Chenfang
2003-08-29
打赏
举报
回复
你new的原则上你要delete,但个别的如form等,可又owner负责删除
TForm(this)中的参数,就是谁是form的owner
this 执行这句话的对象的指针,一般是主form(或另外一个form) ,那么,如果你不delete 该form的话,当主form(或另外一个form)消亡时,主form(或另外一个form)会帮你delete 该form
Application 应用程序对象,如果你不delete 该form的话,当应用程序消亡时,应用程序会帮你delete 该form
NULL 没有owner,只好你自己delete了
当new TForm(this)在应用程序对象对象范围内时,this指的是Application,两者没区别了
amfer
2003-08-29
打赏
举报
回复
如果某个组件没有Owner,那么如果不手动delete,这个组件在内存中将一直存在,是吗?
amfer
2003-08-29
打赏
举报
回复
这么说在new xxx(...)括号中的this,Application就是这个组件的Owner喽,有没有可能某个组件没有Owner?
Wingsun
2003-08-29
打赏
举报
回复
原则上都应该调用正确的delete来释放内存。
VCL的东西原则上可以由它的Owner来负责他的生命周期,建议不要那样做。
winespirit
2003-08-29
打赏
举报
回复
最好自己Delete,还有,要显式释放List里面的指针
nuaacims
2003-08-29
打赏
举报
回复
不是因为TListTStringList不可见,所以可以new了不delete,而是它建立之后,虽然你没有手动delete,但是都会由它们的Owner负责析构...
new
和
delete
的用法完美解析
c++中
new
和
delete
的使用方法http://www.jb51.net/article/49537.htm对于计算机程序设计而言,变量和对象在内存中的分配都是编译器在编译程序时安排好的,这...
new
和
delete
运算符是用于动态分配和撤销内存的运算符...
C++入门——
new
和
delete
C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过
new
和
delete
操作符进行动态内存管理。对自定义类型A
new
和 malloc最大区别是
new
对于...
200-详解C++的
new
和
delete
1、深入理解
new
和
delete
new
和
delete
称作运算符 我们转反汇编看看: 这2个运算符本质也是相应的运算符的重载的调用 1、malloc按字节开辟内存的;
new
开辟内存时需要指定类型
new
int[10] 所以malloc开辟内存...
C++中的
new
和
delete
在C++中,
new
和
delete
是用于动态内存管理的运算符,它们允许程序在运行时动态地分配和释放内存,而不需要在编译时知道确切的内存需求。动态内存分配是指在程序运行时根据需要分配内存空间,而静态内存分配是指在编译...
深入理解
new
[]和
delete
[]
c++的动态内存管理方式和c语言不一样,在c++中使用
new
和
delete
来替换c语言中的malloc和free。这里有几个点不一样, 1、
new
和
delete
是操作符,malloc和free是函数(我的理解是c++将
new
和
delete
约定为操作符而已,...
C++ Builder
13,873
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章