Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2017-03

class operator in record

6 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Unknown author

How come:

   class operator Initialize(var aFoo: TFoo);
   class operator Finalize(var aFoo: TFoo);

in a record are called class operator..

why not "record operator"?

Are these advanced neo-records considered classes?

Again, sorry I'm new to all this new record stuff (neo records ;-))

If they really are just classes, shouldn't it be called a class instead of record.

This also reminds me of the confusion between what an object is versus a class.

Reply by email

Graeme Geldenhuys
to Unknown author
Show quoted text 8 lines
How come: class operator Initialize(var aFoo: TFoo); class operator Finalize(var aFoo: TFoo); in a record are called class operator.. why not "record operator"?

hahaha... You are asking all the questions I've been meaning to ask too.

From your question, just goes to show how rubbish Delphi is being

designed these days. Mixing concepts of class and record interchangeably. And now we have "records" with constructors and destructors! WTF. EMBT/Delphi are seriously polluting the Object Pascal with all this rubbish. Unfortunately FPC feels like they need to follow them like lemmings.

Regards,
Graeme

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://fpgui.sourceforge.net/ My public PGP key: http://tinyurl.com/graeme-pgp

Reply by email

Sven Barth
to Unknown author: How come: class operator Initialize(var aFoo: TFoo); class operator Finalize(var aFoo:…
Show quoted text 11 lines
How come: class operator Initialize(var aFoo: TFoo); class operator Finalize(var aFoo: TFoo); in a record are called class operator.. why not "record operator"? Are these advanced neo-records considered classes?

It's simply that Delphi introduced static methods to records using the same syntax as for classes and operators followed along.

We've simply followed that along as we would have needed to do so at least for mode Delphi anyway and the implementor of advanced records decided not to deviate from that.

Regards,
Sven

Reply by email

Sven Barth
to Graeme Geldenhuys: hahaha... You are asking all the questions I've been meaning to ask too. designed these…

Am 01.03.2017 10:06 schrieb "Graeme Geldenhuys" <

Show quoted text 20 lines
: On 2017-03-01 02:39, wrote: > How come: > > class operator Initialize(var aFoo: TFoo); > class operator Finalize(var aFoo: TFoo); > > in a record are called class operator.. > > why not "record operator"? hahaha... You are asking all the questions I've been meaning to ask too. From your question, just goes to show how rubbish Delphi is being designed these days. Mixing concepts of class and record interchangeably. And now we have "records" with constructors and destructors! WTF. EMBT/Delphi are seriously polluting the Object Pascal with all this rubbish. Unfortunately FPC feels like they need to follow them like lemmings.

Records don't allow destructors, only constructors. Also they allow to more tightly couple initialization functions for some record with the record they belong to. Same for operators by the way: without them you couldn't use a record's operators in generics. Also I personally prefer to have routines that deal explicitly with a given records type as part of said record.

Regards,
Sven

Reply by email

Marco van de Voort
to Sven Barth: It's simply that Delphi introduced static methods to records using the same syntax as for…

In our previous episode, Sven Barth said:

Show quoted text 11 lines
> > why not "record operator"? > > Are these advanced neo-records considered classes? It's simply that Delphi introduced static methods to records using the same syntax as for classes and operators followed along. We've simply followed that along as we would have needed to do so at least for mode Delphi anyway and the implementor of advanced records decided not to deviate from that.

Moreover it doesn't add anything and it only means an extra requirement for editing to change a record to a class and viceversa.

Reply by email

Unknown author
to Graeme Geldenhuys: hahaha... You are asking all the questions I've been meaning to ask too. designed these…
Graeme Geldenhuys wrote 20 lines
On 2017-03-01 02:39, wrote: > How come: > > class operator Initialize(var aFoo: TFoo); > class operator Finalize(var aFoo: TFoo); > > in a record are called class operator.. > > why not "record operator"? hahaha... You are asking all the questions I've been meaning to ask too. From your question, just goes to show how rubbish Delphi is being designed these days. Mixing concepts of class and record interchangeably. And now we have "records" with constructors and destructors! WTF. EMBT/Delphi are seriously polluting the Object Pascal with all this rubbish. Unfortunately FPC feels like they need to follow them like lemmings.

I don't blame FPC for following them in some respects because it enables compatible code to be shared between FPC and delphi, but I get what you mean..

Oberon is a fresh new start without all this rubbish but look where oberon is: no where.
Almost no one uses it, nor cares about it..

so if fpc does things right and diverges from delphi, you have incompatibility ...

But I see what you mean and understand your point

Reply by email