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 _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel