Hallo.
Zunächst: Es ist nicht möglich Get- und Set-Methoden zu überladen. Sie brauchen bzw. haben immer eindeutige Bezeichner.
Dann noch etwas zum Thema "Überladen von Routinen und Methoden": In der Tat ist es so, dass eine überladene Routine bzw. Methode nur anhand ihrer Parameterliste (ihre Signatur) identifiziert werden kann, wenn der Name gleich ist. Nicht anhand ihrer Rückgabe. Der Rückgabewert eine Funktion kann nicht Teil der Signatur sein, wenn man bedenkt, dass Funktionen wie Prozeduren aufgerufen werden können und dar Rückgabewert damit unbeachtet bleibt also auch nicht für einen Signaturvergleich herhalten kann.
Hier ist ein kleines Beispiel:
Delphi-Quellcode:
function F(const X: Integer):Integer; overload;
begin
Result:=X+1;
end;
function F(const X: Extended): Extended; overload;
begin
Result:=X-1;
end;
...
var
ExtendedX: Extended;
IntegerX: Integer;
Y: Extended;
begin
ExtendedX:=5;
IntegerX:=5;
{ Verschiedene Aufrufvarianten, welche Funktion
wird wohl verwendet werden? - Immer nach dem
Grundsatz der Signatur, also der Parameterliste
entscheiden. }
Y:=F(IntegerX); // Y:=6;
Y:=F(ExtendedX); // Y:=4;
F(IntegerX); // vernachlässigte Rückgabe: 6
F(ExtendedX); // vernachlässigte Rückgabe: 4
IntegerX:=F(Y); // Compiler-Fehler: Inkompatible Typen 'Integer' und 'Extended'
end;
Gruß,
Panthrax.
[edit=Panthrax]Zahlendreher im Beispiel[/edit]