[fpc-devel] Object upgrades

Sven Barth pascaldragon at googlemail.com
Mon Jun 10 22:07:57 CEST 2019

Ryan Joseph <genericptr at gmail.com> schrieb am Mo., 10. Juni 2019, 21:31:

> > On Jun 10, 2019, at 3:25 PM, Ben Grasset <operator97 at gmail.com> wrote:
> >
> > Result in your example is the size of a pointer in all cases, which is
> fine / exactly what you'd expect it to be.
> >
> Sorry, if I dereference the size is still of TBase. I don’t think “result"
> is actually changing depending on the class type. This may have something
> to do with the way new works though. How can we fix this?

Of course the dereferentiation of PBase while always have the size of
TBase. That's the point of a pointer. You need to add a static Create
method to each subclass if you want to use that concept. And no kind of
TClassSelf or whatever will help you there as you'd need virtual class
functions for that and objects don't support those just as they don't
support a "class of" kind of type. There's a reason why classes are
superior in nearly all cases after all.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190610/9f89a2c8/attachment.html>

More information about the fpc-devel mailing list