主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

向下

关于对象构造函数的问题 找到类似的分支


Starkom   (2002-04-12 15:21) [0]

是否有可能在一个对象的构造函数中,比如继承自TControl,做这样的事情:
继承控制;
如果有的话
开始
自我:=零;
出口;
结束;

如果是这样,记忆会发生什么?



kull   (2002-04-12 15:33) [1]


>继承控制;


不明白的东西......然后在构造函数中已经Self <> nil了。



Starkom   (2002-04-12 15:34) [2]

因为在某些条件下,构造函数调用之后的Self是必需的



kull   (2002-04-12 15:34) [3]

为什么自我:= nil是丑陋和不正确的。
一个问题:为什么这有必要?



Бурундук   (2002-04-12 15:39) [4]

在构造函数中,你不能改变Self,它没有意义。
你可以做点什么

继承创造;
如果有的话
开始
中止;
结束;

function CreateMyObj:TMyObj;
开始
尝试
结果:= TMyObj.Create;

在EAbort上结果:= nil;
结束;
结束;



Starkom   (2002-04-12 15:43) [5]

有设计师
构造函数CreateFromAnotherObject(AnotherObject)
有一个循环,其中调用构造函数
如果AnotherObject不满足任何条件,构造函数必须以某种方式通知调用者一切都是坏的(只是循环应该立即终止)。
我想要一些东西,以便在这种情况下清除内存的所有工作都在构造函数中找到:
对于i:= 0到n-1
开始
AnyArray [i]:= TMyObject.CreateFromAnotherObject(AnotherObject [i]);
如果没有分配(AnyArray [i])则中断; //
结束;



kull   (2002-04-12 15:46) [6]

啊,你这里有什么,变态......



Бурундук   (2002-04-12 15:49) [7]

只是在构造函数中激动
- 并自动清除存储器,并中断循环。
并且在循环之外,处理它

尝试
对于i:= 0到n-1
开始
AnyArray [i]:= TMyObject.CreateFromAnotherObject(AnotherObject [i]);
//如果没有Assigned(AnyArray [i])则中断; //
结束;

在MyExcept上做...
结束;



Starkom   (2002-04-12 15:52) [8]

2花栗鼠:
记忆清楚了吗? 我可以更详细地阅读它吗?



Бурундук   (2002-04-12 15:56) [9]

始终在隐式try块中调用构造函数。
如果发生任何异常情况
(当然,如果它没有在里面处理)
为该对象分配的内存被释放。
在哪里可以阅读它 - 我不记得了。



Starkom   (2002-04-12 16:01) [10]

好的,我会试试
谢谢。



Digitman   (2002-04-12 16:09) [11]

>斯塔克姆
为副本提供的内存将被释放 - 无需担心。 但关于内存的释放,或许显然是你在设计师的工作环境中选择的,你应该自己照顾。 通常,这最方便在析构函数的上下文中完成,因为构造函数中的异常将导致析构函数在释放内存之前释放。



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.04.25;
下载:[xml.tar.bz2];

楼上





内存:0.58 MB
时间:0.027 c
14-81059
柠檬
2002-03-20 10:59
2002.04.25
银禧:电脑鼠标50年


1-80955
亚历山大
2002-04-11 11:25
2002.04.25
人! 这就是发生了什么! KeyPressed和ReadKey在哪里?!


6-81021
德米特里卡塔耶夫
2002-02-10 00:21
2002.04.25
如何使用HTML获取源文本?


4-81118
SerVS - S.
2002-01-29 14:13
2002.04.25
如何使用API​​禁用ActiveDesktop


1-80881
snoup
2002-04-14 01:07
2002.04.25
今天在这里下载了RX库,请告诉我怎么样,什么,





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法语
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 淡米尔文 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский