[lazarus] Order of destruction in TCustomListBox

Micha Nelissen micha at neli.hopto.org
Mon Dec 15 16:20:14 EST 2003


Mattias Gaertner wrote:
> On Mon, 15 Dec 2003 09:01:47 +0100  Micha Nelissen <micha at neli.hopto.org>
> wrote:
> 
> 
>>Mattias Gaertner wrote:
>>
>>
>>>On Sun, 14 Dec 2003 15:09:48 +0100  Micha Nelissen
>>><micha at neli.hopto.org> wrote:
>>>
>>>><output>
>>>>CB.SomeFunc call
>>>>Constructor
>>>></output>
>>>>
>>>>Which is not logical, IMHO.
>>>
>>>
>>>It is just a matter of definition. Although it would be interesting how
>>>you imagine a more logical alternative.
>>
>>The definition is: the object is only 'defined', if it's constructor has 
>>run completely. Something along those lines is used by C++. After each 
>>constructor run, and only then, are the overriden function pointers 
>>written to the VMT. Personally, I think this is more logical, although 
>>maybe it's a matter of personal taste.
> 
> 
> I got the feeling, Micha is talking about general OOP, while the answers are
> about implementation details in FPC/Delphi. I think, the real problem is
> that there are different definitions of OOP.
> 
> About your definition: "the object is only 'defined', if it's constructor
> has run completely."
> 
> No one will argue about this. Because it does not say a word about inherited
> constructors. I guess, you mean something like this:
> 
> "every class level of an object is only 'defined', if the constructor of
> this level has run completely."

Indeed, this is more like what I meant.

[snip]
> Of course you can also argue: Using another OO definition than FPC and
> saying FPC's OOP is not logical is illogical.

Well put, Mattias.

Micha.






More information about the Lazarus mailing list