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