Flávio Etrusco schrieb: >>> What is the function of being able to add methods to records? >> Not much, I agree, given the existence of objects. It would be better to do >> that >> instead of introducing 'object' keyword, but that decision was made >> back in the days >> of Borland Pascal. > > Indeed, not much, but the memory savings can be really interesting in > some situations.
The storage of class instances can be modified by overriding the according methods. I did so for arrays of instances, and it worked fine in Delphi. With some tricks it should be possible to have both static and dynamic allocation, for the same class type. I also found at least one use for records with methods, in the emulation of C structs with bitfields or unions. For that matter 'object' and properties came in handy. IMO one difference between class and record will stay that records cannot have virtual methods (in Delphi), due to the inlined VMT pointers. Another difference will be heritage - records are not extensible. BTW, 'object' became deprecated (in Delphi) only when the reference-counted data types have been introduced. Delphi (willingly) doesn't support properly objects inheriting from another object type, in which case only the top level type is initialized and finalized properly. I wonder why the same construct with records (nested in records) has been made work, then. DoDi _______________________________________________ Lazarus mailing list [email protected] http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
