Punkt 4 geht, wenn du operator implicit oder explicit einbaust.
Aber nur solange nur ein Parameter verwendet wird.
Und
TTest([0, 2, 666])
sieht ein bissl blöd aus, bei einem Explicit mit Open-Array-Parameter.
PS:
Delphi-Quellcode:
type
PTest = ^TTest;
TTest = record
x, y: Integer;
class function Create: PTest;
class function Create(x, y: Integer): PTest;
procedure Free;
end;
class function TTest.Create: PTest;
begin
Result := Create(0, 0);
end;
class function TTest.Create(x, y: Integer): PTest;
begin
New(Result);
Result.x := x;
Result.y := y;
end;
procedure TTest.Free;
begin
if @Self <> nil then
Dispose(@Self);
end;
Sieht doch hübsch aus?