线程的简单问题2:线程中的constructor ( 积分: 10 )

  • 主题发起人 主题发起人 ppqingyu
  • 开始时间 开始时间
P

ppqingyu

Unregistered / Unconfirmed
GUEST, unregistred user!

我的朋友教我写的一个线程中没有用到构选器,我看了那么多的例子当中,都有constructor,而且线程所需要的参数都写在里面,我不太了解,大家能解释一下它的作用吗?
 

我的朋友教我写的一个线程中没有用到构选器,我看了那么多的例子当中,都有constructor,而且线程所需要的参数都写在里面,我不太了解,大家能解释一下它的作用吗?
 
如果你不用Construcator则说明不用覆盖原Tthread的构造函数,所以你声明时只能用
TSendShortMessageThread.Create(False)或TSendShortMessageThread.Create(True),其实只有在需要OVERRIDE的时候才会自己去覆盖它
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2980848
 
44152788说的很对!
 
构造函数是什么函数?我的书没有介绍构造函数."其实只有在需要OVERRIDE的时候才会自己去覆盖它"
是不是说重新调用一个线程时,用新的参数去替换旧的参数?
 
constructor Create(;;;;)这种结构就是构造函数,它是用作分配内存,成员变量初始化等相关操作的,与其对应的就是析构Destory.当你声明一个新类的时候默认情况是会继承父类的构造构造函数,比如最长见的constructor Create(AOwner: TComponent),这里只传送一个参数Aowner也就是父类.但如果你希望在创建时候希望传递多一些信息时,你就必须overload或override它.
override:这是重载, overload:是覆盖,概念不一样.如果你overload则在你创建实例的时候你有两个构造器可供选择,不加则说明你要重载父类的Creta(),这样在你的方法表中将不会得到父类的Creta,也就是这个方法你就完全脱离了父类
 
关于重载和覆盖,我还是不太明白.
constructor Create(CreateSuspended: Boolean;
aFileName,{文件名} aTbName:{表名} string;aConn: TADOConnection);
overload;
这个源码他用的是覆盖,是不是说如果他再次调用线程,那么aFileName,aTbName,aConn将会被新的变量所代替?但如果用override,再次调用线程,他还用用原来的aFileName,aTbName,aConn?
是不是这样,对于这个,我还不能理解得透切一点,只能这样抽像的想象.
 
每一个类都要有constructor,没写出来是因为你的这个类继承了object的constructor,继承之后所有object的方法原样继承。覆盖是指对一个函数多次定义,让它可以处理不同的参数(在父子类里要有不同的函数),重载在我的理解里就是摧毁父类的函数重建新的方法。
 
多人接受答案了。
 
后退
顶部