把一个Integer类型的变量转换为TObject之后,用不用释放,怎么释放?

shixueli 2004-09-23 02:57:05
如题
...全文
188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
shixueli 2004-10-05
  • 打赏
  • 举报
回复
分少,大家见谅
ikumei 2004-09-24
  • 打赏
  • 举报
回复
楼主这个"把INTEGER类型转成TOBJECT"这个说法不对
实际只是把integer类型转成tobject类型的指针,32位整数转32位整数当然是可以的
如果楼主只是想保存这个整数到只接受tobject类型参数的对象里 将integer转成tobject类型的指针是可以的
用的时候再转回来还是原来的数字,不用释放,那个对象也不过是存放一个指针而已,事实上等于可以存放任何东西。整数可以直接存放,其他的东西可以将它们的指针存放进去
ikumei 2004-09-24
  • 打赏
  • 举报
回复
比如:
A:Tobject;
B:integer;
.......
A:=Tobject.create;
....
b:=integer(a);
.....
以后
你可以A.free,也可以Tobject(B).free;但只能释放一次。
--------------------------------------------------
靠,原来说的这种转换阿
这样做有意义吗?a和b实际在内存中都是32位整数,说穿了就是指针,a转成b 不过是个内存地址的数字,这还可以用来显示
但b转成a呢,在这里毫无意义
我还以为将整数转成tobject以后仍然是个整数呢
CareYouOnly 2004-09-24
  • 打赏
  • 举报
回复
"是这样的,我想把一个Integer值保存到ComboBox里面,但是这个控件的AddObject方法只接受TObject对象,于是我就把Integer转换为TObject了。"

行的,用完之后步用释放!
jorge 2004-09-24
  • 打赏
  • 举报
回复
TObject本质上就是个指向对象实例的指针,指针么,和整数当然是可以来回转换的,就是当Integer穿着TObject的马甲的时候千万别访问它的成员,因为那其实是个不一定指向哪的指针,根本没有给它分配内存,后果……
这回你说那个TObject用释放么?
fireinthehole 2004-09-23
  • 打赏
  • 举报
回复
是个问题,关注
halfdream 2004-09-23
  • 打赏
  • 举报
回复
这样用没有多大问题的...
比如:
var
a:TObject;
b:integer;
begin
...
其中a本身,也仅是四字节的整型,只是它将会用于存地址而已.
强制转换后,把它当成整型数用没有什么不行的.



fj218 2004-09-23
  • 打赏
  • 举报
回复
比如:
A:Tobject;
B:integer;
.......
A:=Tobject.create;
....
b:=integer(a);
.....
以后
你可以A.free,也可以Tobject(B).free;但只能释放一次。
ehom 2004-09-23
  • 打赏
  • 举报
回复
这里只是记录一个指针,释放问题与它无关,指针传递自然没理由报错~~~但有另一个严重问题,对象是存在堆上的,VCL对象不手动释放,就一直存在,所以可以这里可以这么用.而Integer呢?我相信你不是给它动态分配在堆上吧?那它就在栈上,栈的概念有吧?下一次指针指向的Integer类型数据就不是同一个,上次那个已经释放了,所以不要这么做.
shixueli 2004-09-23
  • 打赏
  • 举报
回复
不是阿,我用的是D7,编译能通过,不是提示 不是安全的转换。
ikumei 2004-09-23
  • 打赏
  • 举报
回复
楼主是不是用的delphi.net???
来错分区了???
据我的了解 在delphi.net以前的版本中好像不存在 能把integer 转换为 tobject这种事
首先integer就不是一个类——这和java 以及.net不同

如果楼主说的是.net 里的 ,Integer转换为TObject当然不用自己释放,java也是如此
ehom 2004-09-23
  • 打赏
  • 举报
回复
类型转换要求A是B的派生类才行~~~
shixueli 2004-09-23
  • 打赏
  • 举报
回复
是这样的,我想把一个Integer值保存到ComboBox里面,但是这个控件的AddObject方法只接受TObject对象,于是我就把Integer转换为TObject了。
halfdream 2004-09-23
  • 打赏
  • 举报
回复
不用.
不过还是想问问楼主所说的把INTEGER类型转成TOBJECT是什么意思..嘿嘿
tugang 2004-09-23
  • 打赏
  • 举报
回复
关注中……

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧