Nagging question I had that I would like answered. I was told that we can’t
have operator overloads on classes (only records) because there is a potential
temporary class that could be created and thus some kind of automatic memory
management would be needed. How is this any different than function operator
overloads? If you allocated a new class in "operator +” then you would get a
memory leak right? If that’s true then I don’t understand why we can’t have
them in the actual class structure.
// these both do leak
operator + (left: TClass; right: T): TClass;
begin
result := TClass.Create(right);
end;
class operator + (left: TClass; right: T): TClass;
begin
result := TClass.Create(right);
end;
// these both don’t leak
operator + (left: TClass; right: T): TClass;
begin
result := left;
end;
class operator + (left: TClass; right: T): TClass;
begin
result := left;
end;
Regards,
Ryan Joseph
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel