[fpc-pascal] Turbo Pascal and Object Pascal ways of OOP

Daniël Mantione daniel.mantione at freepascal.org
Tue Feb 5 12:09:03 CET 2008



Op Tue, 5 Feb 2008, schreef Tiziano De Togni:

> Michael Van Canneyt ha scritto:
>> 
>> On Tue, 5 Feb 2008, Tiziano De Togni wrote:
>> 
>>> From the Delphi (7) help and in the borland newgroups I read that the old 
>>> TP
>>> style object type is considered to disappear, and actually only kept for 
>>> code
>>> compatibility.
>>> 
>>> I see here that some developers still use the type object because of some
>>> advantages against the Class type (static allocation).
>>> 
>>> Can someone explain better these advantages?
>> 
>> The advantage is mainly that you can have objects on the stack.
>
> sorry, but don't understand exactly what this means exactly.
>
> I understand that if I write a procedure of this kind:
>
> procedure processmyobject(myobject: tmyobject);
>
> procedure processmyobject(myclass: tmyclass);
>
> I have myobject on the stack, instead myclass is passed by reference, but 
> don't see the advantage...

Stack allocation is much faster than heap allocation, and automatic. Take 
a look at the matrix unit; you can return an object from a function 
without worrying about memory leaks, so they are very usefull in function 
results and operator overloading.

Further, objects allow you control the binary layout (the binary layout is 
just like a record), which means you can fit existing data structures 
(like those used in files) with methods. Some time ago we had a discussion 
about this list about mapping the GTK Gobject model to Pascal objects, 
succesfull experiments were done.

Daniël


More information about the fpc-pascal mailing list