请问:是否要在每个类的实例使用之前都要先创建它?

时间:2022-07-27 19:12:48
请问:是否要在每个类的实例使用之前都要先创建它?

15 个解决方案

#1


应该是这样的
首先创建实例

#2


每个类使用之前都要先创建它的实例

#3


对头!而且别忘了用完释放它:XXX.Free

#4


那么例如:button1:tbutton;
         memo1:tmemo;
在使用button1和memo1之前要进行:button1:=tbutton.create;
                               memo1:=tmemo.create;
对吗?

#5


不一定。比如:var s:String;s:='abcd';

#6


楼上说得有理。

#7


有道理,帮你up

#8


自定义的类要创建,标准类和组件类是自动创建的(其实也创建了)。

#9


谢谢各位!
但我现在还是一头雾水,不知道哪些类的实例在使用前应该让它create一下,大家有什么高见?!

#10


to 楼主:

请问:是否要在每个类的实例使用之前都要先创建它?

若没有创建,又哪来的实例?

#11


呵呵,可能是我表达得不准确。
我这里创建的意思是create,我是想问:哪些类的实例在使用前应该让它create一下,而哪些只需要定义一下就可以了?

#12


大多时候是用时创建,用完释放后比较好,但也要具体问题具体分析。
1,当创建和释放的成本(这儿成本指执行时间长等)比较大时,就可以考虑一次创建了,
让它一直生存。
2,当你要用类实例来维护一些状态时候,要根据状态维护时间来考虑让对象生存多久。
3,当对象占用内存资源比较大,调用后马上释放是可取的。
4,还有很多情况会要求对象长期生存。。

#13


TO:neighborgirl() 
只需要定义一下?是什么意思?
在DELPHI里面,类实例都要创建的,没有例外的。

我猜你所说的只需要定义一下的,那不是类。尽管同样以T字母开头命名,
它们只是普通的类型定义,象枚举型,记录型等。比如TRECT等等




#14


至于那种,你在设计期放在窗体上的部件(也是类),它会随着窗体创建而自动创建。

#15


呵呵,谢谢halfdream(哈欠) ,我说的就是窗体上的部件!
结贴!

#1


应该是这样的
首先创建实例

#2


每个类使用之前都要先创建它的实例

#3


对头!而且别忘了用完释放它:XXX.Free

#4


那么例如:button1:tbutton;
         memo1:tmemo;
在使用button1和memo1之前要进行:button1:=tbutton.create;
                               memo1:=tmemo.create;
对吗?

#5


不一定。比如:var s:String;s:='abcd';

#6


楼上说得有理。

#7


有道理,帮你up

#8


自定义的类要创建,标准类和组件类是自动创建的(其实也创建了)。

#9


谢谢各位!
但我现在还是一头雾水,不知道哪些类的实例在使用前应该让它create一下,大家有什么高见?!

#10


to 楼主:

请问:是否要在每个类的实例使用之前都要先创建它?

若没有创建,又哪来的实例?

#11


呵呵,可能是我表达得不准确。
我这里创建的意思是create,我是想问:哪些类的实例在使用前应该让它create一下,而哪些只需要定义一下就可以了?

#12


大多时候是用时创建,用完释放后比较好,但也要具体问题具体分析。
1,当创建和释放的成本(这儿成本指执行时间长等)比较大时,就可以考虑一次创建了,
让它一直生存。
2,当你要用类实例来维护一些状态时候,要根据状态维护时间来考虑让对象生存多久。
3,当对象占用内存资源比较大,调用后马上释放是可取的。
4,还有很多情况会要求对象长期生存。。

#13


TO:neighborgirl() 
只需要定义一下?是什么意思?
在DELPHI里面,类实例都要创建的,没有例外的。

我猜你所说的只需要定义一下的,那不是类。尽管同样以T字母开头命名,
它们只是普通的类型定义,象枚举型,记录型等。比如TRECT等等




#14


至于那种,你在设计期放在窗体上的部件(也是类),它会随着窗体创建而自动创建。

#15


呵呵,谢谢halfdream(哈欠) ,我说的就是窗体上的部件!
结贴!