[fpc-devel] Newbie question: how does the compiler know the class type of an object ( the Is operator)
    Ewald 
    ewald at yellowcouch.org
       
    Fri Aug 22 20:54:19 CEST 2014
    
    
  
On 08/22/2014 07:53 PM, Dennis Poon wrote:
>
>
> Howard Page-Clark wrote:
>> program Project1;
>>
>> uses classes;
>> begin
>>   WriteLn('InstanceSize of TObject=',TObject.InstanceSize);
>>   ReadLn;
>> end.
>
> I tried and it says the instancesize is 4 (on win 32 bit).
> My question actually was how does the "as" and "is" get the class type
> of an object.
> So, does that imply the 4 byte is used to store a pointer to the class
> type and Virtual Method table?
Have a look at the documentation concerning TObject.
It's the boilerplate of TObject that does the magic. (at least at
runtime, I don't know about compile time optimizations concerning the
`as` and `is` operators)
Also, to get a better idea of the size of a TObject in memory,
SizeOf(TVmt) will get you started?
-- 
Ewald
    
    
More information about the fpc-devel
mailing list