I\'ve always wondered about this for a bit, but why is operator overloading not available for classes in Delphi?
I remember reading an answer once while on the run,
Close. It's because objects are reference types and the memory is managed manually. So if you said myResult := myObject1 + myObject2 + myObject3;
, you'd have to create an intermediate object somewhere in there, and there's no code to free it, so you get memory leaks.
You can have operator overloading for classes, but only for the NextGen compiler where classes use ARC.
See: http://blog.marcocantu.com/blog/class_operators_delphi.html
This was introduced in XE5, see: List of Delphi language features and version in which they were introduced/deprecated
Mason Wheeler says that it's impossible because intermediate object management.
But according to Embarcadero documentation, class operators where possible with Delphi 2009.
RAD Studio 2009 - Operator Overloading New Delphi language features since Delphi 7