Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - overload von funktionen mit unterschiedlichen Rückgabewerten


huhn - Sa 11.09.10 16:25
Titel: overload von funktionen mit unterschiedlichen Rückgabewerten
Hi forum,

ich möchte eine Funktion überladen in dem Sinne, dass ich verschiedene Rückgabewerte bekommen.
Mein bisheriger Versuch hat irgendwie nicht so ganz funktioniert:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
  TKonst =record
    letter: shortstring;
    value: extended;
    vunit: shortstring;
    description: String;
  end;

  function konst(letter: string): extended; overload;
  function konst(letter: string): TKonst; overload;
.
.
.
function konst(letter: shortstring):extended; overload;
var z:integer;
begin
  result:=0;
  for z:=low(konstanten) to high(konstanten) do
    if konstanten[z].letter=letter then
      begin
        result:=konstanten[z].value;
        break;
      end;
end;

function konst(letter: shortstring):TKonst; overload;
var z:integer;
begin
  result.letter:='';
  result.value:=0;
  result.vunit:='';
  result.description:='';
  for z:=low(konstanten) to high(konstanten) do
    if konstanten[z].letter=letter then
      begin
        result:=konstanten[z];
        break;
      end;
end;

aber irgendwie meckert der kompiler rum, steh da irgendwie aufm Schlauch und eine Procedure möchte ich nicht draus machen.

mfg huhn


dummzeuch - Sa 11.09.10 16:50

Hi,

user profile iconhuhn hat folgendes geschrieben Zum zitierten Posting springen:

ich möchte eine Funktion überladen in dem Sinne, dass ich verschiedene Rückgabewerte bekommen.
Mein bisheriger Versuch hat irgendwie nicht so ganz funktioniert:

Delphi-Quelltext
1:
2:
  function konst(letter: string): extended; overload;
  function konst(letter: string): TKonst; overload;



Leider verloren. Der Compiler entscheidet alleine anhand der Parameter welche Funktion er aufrufen soll. Da die Parameter Deiner Funktionen aber gleich sind, weigert er sich.
Es bleibt Dir nur uebrig, die Funktionen unterschiedlich zu benennen.

twm


huhn - Sa 11.09.10 18:02

jo musst ich auch feststellen und habe mich vom compiler geschlagen gegeben ;)
trotzdem danke für die hilfe

mfg huhn