AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Overload: Merkwürdige Funktionswahl

Ein Thema von blablab · begonnen am 2. Apr 2012 · letzter Beitrag vom 7. Apr 2012
 
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Overload: Merkwürdige Funktionswahl

  Alt 2. Apr 2012, 10:46
Also die Reihenfolge in der die Funktionen definiert sind ändert nichts. Der Compiler bevorzugt hier wirklich die Byte-Funktion. Ich frag mich nur warum...

Edit:
Wenn man das Problem undreht, also man hat einen "kleinen" Datentypen und verschiedene überladene Funktionen mit "größeren" Datentypen, dann macht der Compiler alles richtig. Er schaut als erstes nach dem Vorzeichen, bevorzugt also bei Vorzeichenlosen Datentypen auch vorzeichenlose Funktionen und vice versa. Und dann verwendet er die Funktion mit dem kleinstmöglichen Datentyp.

Z.B beim Shortint bevorzugt er Funktionen in dieser Reihenfolge:
Shortint
Smallint
Longint
Int64
Byte
Word
Longword

Wobei das ein besonderes Beispiel ist, da er bei anderen Datentypen sich oft nicht entscheiden kann, z.B:
Datentyp: Int64
Funktion1: Shortint
Funktion2: Byte
ergibt den Fehler: "Doppeldeutiger überladener Aufruf von 'Funktionsname'".
Wobei es hier doch auch wieder logisch wäre sich für den Shortint zu entscheiden...

Geändert von blablab ( 2. Apr 2012 um 11:07 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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 by Thomas Breitkreuz