AGB  ·  Datenschutz  ·  Impressum  







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

Zwei Funktionen mit dem selben Namen?

Ein Thema von NoGAD · begonnen am 23. Jun 2022 · letzter Beitrag vom 25. Jun 2022
Antwort Antwort
Seite 2 von 3     12 3      
EvoOlli

Registriert seit: 23. Jun 2007
11 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 15:32
Im Quellcode macht es auch Borland mit overload;
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 15:32
Die Doku sagt nichts darüber aus, wie es denn effektiv in den Sourcen steht. Schau dir dazu die Sourcen an, die sind massgebend. Das folgende stammt aus System.SysUtils.pas:
Delphi-Quellcode:
unction Format(const Format: string;
  const Args: array of const): string; overload;
function Format(const Format: string; const Args: array of const;
  const AFormatSettings: TFormatSettings): string; overload;
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 15:39
Ich bedanke mich ganz herzlich bei euch.



Zu den Funktionen habe ich noch eine weitere Frage:

Wie ist das technisch eigentlich von Borland geregelt, dass erkannt wird, welche Funktion aufgerufen wird?

Als Beispiel habe ich jetzt noch:

Delphi-Quellcode:
var
  Absatz: Integer;
  UsePre: Boolean;
  Variante: TLoremIpsumVariant;
{..}
function CreateLoremIpsum(aWorte: Integer; aVariante: TLoremIpsumVariant): String;
begin
  Result := CreateLoremIpsum(aWorte, Absatz, UsePre, aVariante);
end;
gemacht und der Compiler kommt dennoch nicht durcheinander mit einer anderen 2-Parameter-Funktion.

LG
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 16:11
Der Compiler schaut ja nicht nur auf die Anzahl der Parameter sondern auch auf den Typ.

Wenn du 2 gleichnamige Funktionen hast
Delphi-Quellcode:
procedure Test(a: String; b: String);
procedure Test(a: String; b: Integer);
und dann so einen Aufruf:
Delphi-Quellcode:

Test('Hallo', 23);
Dann kann der Compiler ja anhand der Parameter ableiten welche Funktion gemeint ist.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#15

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 16:16
Anhand der Typen, welche beim Aufruf übergeben werden.

Delphi-Quellcode:
procedure abc(i: Byte); overload;
procedure abc(i: string); overload;
Delphi-Quellcode:
procedure abc(i: Byte); overload;
procedure abc(i: Integer); overload;
also var x: Byte; abc(x); geht immer,
aber mit abc(1); gibt es beim Zweiten ein Problem, denn was ist 1 für ein Typ?

Auch muß man z.B. bei Überladungen von Pointer und TObjekt aufpassen.
Gibt man da eine Variable rein, dann geht es immer, aber bei abc(nil); ist es wieder nicht eindeutig.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
677 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 17:10
[OT]
... Borland...

Würdest du jetzt in Bielefeld leben und nicht in Weimar, würde ich sagen, "Ok, so leicht kommen Informationen halt nicht nach Bielefeld. Da kann man verstehen das es noch nicht durchgedrungen ist dass die jetzt Embarcadero heißen". Aber Du lebst ja in Weimar. Da gibt es zwar eine Gärtnerei Bielefeld, aber ansonsten sind dort alle voll auf dem Laufenden.
[/OT]
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#17

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 17:26
Nja, eigentlich heißt die Firma ja bereits Idera, aber Dubai ist vielleicht noch zu weit weg.


Alles heißt Maggi, auch wenn es nicht von Maggi ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 18:09



Danke für die Erklärung.

Somit wäre es nicht möglich, zwei Funktionen von einer "langen" abzuleiten / zu erstellen, die im Prinzip vom Typ her gleich sind, aber andere Parameter besitzen:

1. Function bla (X:integer; y:boolean; x: boolean): Boolean; overload;
2.1 Function bla (X:integer; x: boolean): Boolean; overload;
2.2 Function bla (X:integer; y:boolean): Boolean; overload;

2.2. waäre dann nicht möglich, weil der compiler nicht weiß, was was ist, richtig?


OT: Rad Studio ist für mich immer noch Delphi und Borland ist die FA, die ich damit in Verbindung bringe

LG Mathias.
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#19

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 18:21
2.2. waäre dann nicht möglich, weil der compiler nicht weiß, was was ist, richtig?
richtig.

Nja, eigentlich heißt die Firma ja bereits Idera, aber Dubai ist vielleicht noch zu weit weg.
Nur der Vollständigkeit halber: Codegear
Jetzt haben wir glaube ich alle durch
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (23. Jun 2022 um 18:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Zwei Funktionen mit dem selben Namen?

  Alt 23. Jun 2022, 19:01
2.2. waäre dann nicht möglich, weil der compiler nicht weiß, was was ist, richtig?
richtig.

Nja, eigentlich heißt die Firma ja bereits Idera, aber Dubai ist vielleicht noch zu weit weg.
Nur der Vollständigkeit halber: Codegear
Jetzt haben wir glaube ich alle durch
Danke


Nebenbei, Idera scheint doch korrekt zu sein.

https://www.embarcadero.com/de/company/about-us
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz