[fpc-devel] class operator overloads

Ryan Joseph genericptr at gmail.com
Mon Jun 10 15:28:17 CEST 2019



> On Jun 10, 2019, at 9:25 AM, Sven Barth via fpc-devel <fpc-devel at lists.freepascal.org> wrote:
> 
> The operator for assigning one class instance to another exists and is internal thus it is not allowed to be overloaded. 
> 

Is that true for binary operators also? The same principle could apply to them also and perhaps solve the problem you posted below.

operator + (aLeft, aRight: TSomeClass): TSomeClass;
begin
  aLeft.DoSomething(aRight);
  Result := aLeft;
end;

var
  a, b, c: TSomeClass;
begin
  a := TSomeClass.Create;
  b := TSomeClass.Create;
  c := a + b;
  a.Free;
  b.Free;
  c.Free; (* boom! *)
end.

Regards,
	Ryan Joseph




More information about the fpc-devel mailing list