[fpc-devel] Suggestion: reference counted objects

Boian Mitov mitov at mitov.com
Tue Sep 23 02:11:05 CEST 2014


Because TObject always has virtual table as example, and you can't use 
anything inherited from it to map into communication header.
Structures on another hand by default start from empty hierarchy, and do not 
have Virtual Table pointer so I can create a structure and send it to a 
socket for transmission or map an received array into structure for easy 
access.
Unfortunately headers tend to have hierarchies ;-) , shich makes it a bit 
challenging to map them into Delphi records, or use the same function to 
process inherited record as example ;-) .
I know there are some not that pretty works around this, but that is what 
they are - ugly, and sometime dangerous(ahem... unsafe casting) work 
arounds.

With best regards,
Boian Mitov

-------------------------------------------------------
Mitov Software
www.mitov.com
-------------------------------------------------------
-----Original Message----- 
From: Hans-Peter Diettrich
Sent: Monday, September 22, 2014 4:58 PM
To: FPC developers' list
Subject: Re: [fpc-devel] Suggestion: reference counted objects

Boian Mitov schrieb:
> In general, records and classes are inherently the same thing (and in C++ 
> are indeed practically interchangeable).

This model might have been the reason for introducing Object at all, for
compatibility with CBuilder.

> The only real difference in Delphi/FPC is that records are instantiated in 
> the stack, the objects in the heap,

Like records, Objects can reside in either the stack, heap or even
static memory.

> and the artificial restriction on record inheritance.

Why inherit when you can't override virtual methods? I convert my
Records into Objects, when I want to extend an record.

DoDi

_______________________________________________
fpc-devel maillist  -  fpc-devel at lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel 




More information about the fpc-devel mailing list