![]() |
Originalfunktion in überladener Funktion nutzen?
Kann ich eine Bibliotheksfunktion überladen und in der Definition die ursprüngliche Bibliotheksfunktion benutzen?
Also sowas:
Delphi-Quellcode:
function Trunc(x: TFloat): Int64; overload;
begin if x<MAXINT then Result:=inherited Trunc(x) //also nicht rekursiv gemeint, inherited ist aber falsch else Result:=MAXINT; end; |
Re: Originalfunktion in überladener Funktion nutzen?
Indem du Funktion mit dem ursprünglichen Parametertyp aufrufst.
|
Re: Originalfunktion in überladener Funktion nutzen?
Oder Namespace (Unitnamen) angeben in der ursprüngliche FUnktion definiert ist:
Delphi-Quellcode:
:= System.Trunc(x)
|
Re: Originalfunktion in überladener Funktion nutzen?
Wobei man Funktionen nicht überladen kann, sondern nur Methoden
|
Re: Originalfunktion in überladener Funktion nutzen?
Trunc ist eine Funktion aus der Unit Math.
Weil es keine Methode ist geht Math.Trunc nicht. Da die überladene Variante dieselben Argumente wie die Originalvariante wird der Aufruf automatisch rekursiv. Das Überladen einer Funktion geht schon. Es wird tatsächlich mein Trunc statt das aus Math aufgerufen. Komme ich in meiner Funktion nicht doch irgendwie an das Trunc aus Math ran? |
Re: Originalfunktion in überladener Funktion nutzen?
Zitat:
Edit: Und Trunc ist nach wie vor in Unit System. |
Re: Originalfunktion in überladener Funktion nutzen?
Asche auf mein Haupt...
Stimmt, Trunc ist in System, hab ich verwechselt. Und System.Trunc funktioniert. Super, danke :-) |
Re: Originalfunktion in überladener Funktion nutzen?
Zitat:
|
Re: Originalfunktion in überladener Funktion nutzen?
Das ist aber kein Überladen, sondern nur eine Verschiebung des Scopes
|
Re: Originalfunktion in überladener Funktion nutzen?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz