![]() |
Overload-Problem bei currency und TDateTime
Hallo,
ich habe da ein Problem mit einer überladenen Funktion.
Delphi-Quellcode:
In einer Methode rufe ich dann folgendes auf:
...
protected procedure Test(Value: currency); overload; virtual; abstract; procedure Test(Value: TDateTime); overload; virtual; abstract; ..
Delphi-Quellcode:
Das wird mit der Fehlermeldung "Doppeldeutiger überladener Aufruf von 'Test'" quittiert.
...
var Value : currency; begin Test(Value); ... Abstrakt ist es nur zum testen, das gleiche Problem habe ich auch wenn die Prozeduren nicht abstrakt sind. Getestet habe ich das in Delphi5 und Delphi7. TDateTime ist ja eigentlich ein double. Daher verstehe ich nicht warum es hier ein Problem gibt. Und noch viel mehr würde mich eine Lösung interessieren :zwinker: Vielen Dank |
Re: Overload-Problem bei currency und TDateTime
Zitat:
Du brauchst also unterschiedliche Methodennamen. |
Re: Overload-Problem bei currency und TDateTime
Currencz ist auch ein Fliesskommatyp, da weiss der Compiler dann wohl nicht welcher gemeint ist
|
Re: Overload-Problem bei currency und TDateTime
Nein, Currency ist eigentlich ein Int64, welcher als Festkommatyp interpretiert wird.
Delphi sieht ihn leider zu oft als Fließkommatyp an und übersieht erstmal andere Currency-Definitionen. TDateTime ist auch ein Double. Was du versuchen kannst ist die Reihenfolge zu tauschen (erst TDateTime und dann Currency) oder ist dieses
Delphi-Quellcode:
Ob das geht, ist nicht sichergestellt.
type
TCurrency = type Currency; ... protected procedure Test(Value: TCurrency); overload; virtual; abstract; procedure Test(Value: TDateTime); overload; virtual; abstract; ... var Value : TCurrency; begin Test(Value); Aber direkt ist es nicht möglich Double und Currency zu mischen :cry: Mein Ausweg war daher immer die Currency-Funktion umzubennen (TestC ... also überall ein C anzuhängen). |
Re: Overload-Problem bei currency und TDateTime
Zitat:
Also scheint das nicht an den reinen Fließkomma-Format zu liegen. Vielleicht machen dort die 2 Byte mehr schon den Unterschied... Zitat:
|
Re: Overload-Problem bei currency und TDateTime
Single oder Extended + Currency
hier wird vermutlich TDateTime auch die Funktion von Currency aufrufen :nerd: |
Re: Overload-Problem bei currency und TDateTime
Zitat:
Zitat:
Also bleibt mir wohl nichts anderes als die Methoden nicht zu überladen und stattdessen eindeutige Methodenbezeichner zu verwenden. :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 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