AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Rueckgabewerte von ueberladenen Funktionen?
Thema durchsuchen
Ansicht
Themen-Optionen

Rueckgabewerte von ueberladenen Funktionen?

Ein Thema von alcaeus · begonnen am 13. Apr 2005 · letzter Beitrag vom 20. Jul 2005
Antwort Antwort
Seite 2 von 3     12 3      
DevilsCamp
(Gast)

n/a Beiträge
 
#11

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 09:18
Delphi-Quellcode:
function Test(Bla: String): String; overload;
function Test(Bla: String): Integer; overload;

procedure Hallo;
var
  s : String;
  i : Integer;
begin
  s := Test('Hallo');
  i := Test('12345');

  Test('Servus'); // <---- hier sollte der Compiler dann meckern und sonst nicht ;)
end;
Könnten wir uns auf obigen QuellCode einigen?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 09:21
Klar könnten wir uns einigen, nur der Compiler wird trotzdem schon vorher meckern
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#13

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 09:27
Leider.

Wird mir wohl wirklich nichts anderes übrig bleiben als den Funktionsnamen zu ändern
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#14

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 09:35
Falls ihr dennoch auf Variants setzt, dann verwendet auch die Funktionen aus der Variants.pas, mit denen man den Inhalt dieser Variablen prüfen - oder deren internen Typ abfragen, was zur Fehlerbehandlung beitragen sollte. </sülz>

Ansonsten sollte man Variants allerdings vermeiden - aus besagten Gründen
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#15

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 14:06
oder ich benutze statt einer Funktion eine Prozedur und übergebe die Variable, in der das Ergebnis stehen soll als var-Parameter


Delphi-Quellcode:
procedure Test(Bla: String; var Result: String); overload;
procedure Test(Bla: String; var Result: Integer); overload;
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 14:50
@DevilsCamp: wundert mich dass diese Methode nicht schon viel eher vorgeschlagen würde, die kam mir beim lesen des threads als aller erstes in den sinn
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#17

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 15:18
prozeduren sind ohnehin 800% schneller als funktionen, in der verarbeitung
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 15:21
Zitat von barf00s:
prozeduren sind ohnehin 800% schneller als funktionen, in der verarbeitung
Kannst du diese Aussage bitte begründen?

(Ich will dich damit nicht anprangern, sondern es interessiert mich wirklich, warum das so ist / sein soll)
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#19

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 15:42
@barf00s: Warum erzählst du solchen Unsinn?

Kuck dir das mal an:

Delphi-Quellcode:
program Project5;

uses
  Windows;

{$APPTYPE CONSOLE}

function TestF(I: Integer): Integer;
begin
  Result := I + 1;
end;

procedure TestP(I: Integer; var Result: Integer);
begin
  Result := I + 1;
end;

var
  Dump, I: Integer;
  _Begin, _End, _Dif: Int64;

begin
  Dump := 0;
  QueryPerformanceCounter(_Begin);
  for i := 0 to 10000000 do
    Dump := TestF(Dump);
  QueryPerformanceCounter(_End);
  _Dif := _End - _Begin;
  WriteLn('Functiontest : ', _Dif, ' Ticks');
  Dump := 0;
  QueryPerformanceCounter(_Begin);
  for i := 0 to 10000000 do
    TestP(Dump, Dump);
  QueryPerformanceCounter(_End);
  _Dif := _End - _Begin;
  WriteLn('Proceduretest: ', _Dif, ' Ticks');
  Readln;
end.
Und das Ergebnis, das dabei rauskommmt:

Zitat:
Functiontest : 165575 Ticks
Proceduretest: 326003 Ticks
Ich würde doch mal sehr behaupten, Prozeduren seien langsamer

Edit: Copy&Waste
  Mit Zitat antworten Zitat
DevilsCamp
(Gast)

n/a Beiträge
 
#20

Re: Rueckgabewerte von ueberladenen Funktionen?

  Alt 19. Jul 2005, 15:55
was hast du für einen Rechner?


Bei mir kommt folgendes raus:
Code:
Functiontest        Proceduretest
      471782                383582
      481778                406912
      473677                384258
      487796                381966
      488406                384659
      480697                402065
      479277                384486
      481221                377313
      475937                377417
      475279                402056

Bei mir sind die Procedures schneller
  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 16:19 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