Einzelnen Beitrag anzeigen

Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
440 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Optionale (= vorbelegte) FunktionsParameter vom Type Record - Wie geht das?

  Alt 5. Jun 2021, 09:33
@KodeZwerg:
Die einfache herkömmliche Alternative wäre, in der rufenden Routine den Record z vorzubelegen z.X:= 1.25; z.Y:= 2.5; und z so als Parameter zu übergeben.
Daraus Klassen zu machen mit "strict private" Variablen und einer "Init" - Methode wäre eine Kanone auf ein Spätzchen, zumal ich etliche solche Funktionen mit Vorbelegung habe. Dadurch wäre sowohl der Code, als auch die Benutzung wesentlich komplizierter.

@Uligerhardt:
In manchen Fällen wäre es in der Tat nur ein dünner Wrapper, wenn die Werte in z linear in die Routine p_Rec(V, T, n: Extended; const z: TDRecord): Extended; eingehen, also wenn z.B. gilt: p_Rec(V, T, n, z) := z.X*p_Rec(V, T, n) + z.Y; Aber oft sind die Werte z.X und z.Y auf eine wesentlich kompliziertere, nichtlineare Art und Weise in der Funktion enthalten.

Man kann sich das etwa so vorstellen: Die StandardFunktion verwendet für die Berechnung einer komplexen Formel z.B. z.X:= 1.25; z.Y:= 2.5; . Es gibt aber noch Funktion_1, Funktion_2, Funktion_3 etc., welche mit der gleichen Formel aber mit verschiedenen z-Werten arbeiten können. In solchen Fällen wäre es kein dünner Wrapper mehr, sondern eine Duplizierung des Codes der Berechnungsroutine.
Aber für die linearen Fälle ist Dein Vorschlag mit overload; eine gute Lösung.
Danke & Gruß, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher.
John C. Cornelius
  Mit Zitat antworten Zitat