![]() |
Hilfe beim Überladen einer Funktion
hoiiii
Delphi-Quellcode:
function CountWords(s: string; c: char): integer; overload;
function CountWords(s: string; c: char): string; overload; wie könnte ich diese funktion überladen? die argumente sind gleich, nur der rückgabetyp ist anders...muss ich die variable in das die funktion das ergbnis gibt etwa mit übergeben? wäre doch sinnlos wenn da ne extra variable dann in den argumenten ist oder? also wenn jemand n tip hat, bitte posten :) Edit: achja übrigens, der compiler gibt die fehlermeldung aus: Zitat:
|
Re: Hilfe beim Überladen einer Funktion
Hallo Pseudemys Nelsoni,
selbst wenn Du die Deklaration der Funktionen fehlerfrei hinbekommen solltest, bekommst Du spätestens beim Einsatz mit der "erweiterten Pascal-Syntax" (Funktionen können auch ohne den Rückgabewert zu verwenden, benutzt werden) Probleme, weil der Compiler an der Signatur nicht entscheiden kann, welche Version gemeint ist. Oder kannst Du mir das vielleicht sagen?
Delphi-Quellcode:
Warum machen die unterschiedlichen Rückgabewerte Sinn?
var
myVar: Variant; begin myVar:= CountWords('A sentence with spaces.', #32); |
Re: Hilfe beim Überladen einer Funktion
Mach doch kurzerhand eine Prozedur draus !
function CountWords(s: string; c: char): integer; overload; function CountWords(s: string; c: char): string; overload; könntest du auch wie folgt abbilden: procedure CoundWords(s: String; c: Char; var Result : Integer); overload; procedure CoundWords(s: String; c: Char; var Result : String); overload; Damit solltest du deinen Weg gehen können. Gruß Argent |
Re: Hilfe beim Überladen einer Funktion
hoi^^
Zitat:
Zitat:
Code:
könnte ich beim aufruf die variable die das ergebnis enthalten soll mit übergeben, ca so:
function CountWords(s: string; c: char; RckgabeWert: string): string; overload;
Code:
s := Countwords('bla;bla2;bla3', ';', s);
Zitat:
hi² ^^ Zitat:
|
Re: Hilfe beim Überladen einer Funktion
Zitat:
Delphi-Quellcode:
Sieh Dir vielleicht einmal in der OH die Funktion Format an und ziehe in Erwägung, ob Du Deine Ausgaberoutine nicht um eine überladene Version mit
procedure OutputMessage(const AMessage: string);overload;
procedure OutputMessage(const AnInt: Integer);overload; // etc...
Delphi-Quellcode:
erweiterst...
procedure OutputMessage(const AMessage: string; const AParams: array of const);overload;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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