Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Klassenfunktion identisch zur "normalen Funktion" (https://www.delphipraxis.net/193608-klassenfunktion-identisch-zur-normalen-funktion.html)

bernhard_LA 20. Aug 2017 21:06

Klassenfunktion identisch zur "normalen Funktion"
 
kann ich bereits vergebene Funktionsnamen auch nochmal inner einer Klasse verwenden, also :


Delphi-Quellcode:
TMyClass := Class ()

public


procedure DoSomething ( P1, P2) ;

end;



procedure TMyClass.DoSomething ( P1, P2) ;
begin

   DoSomething ( P1, P2, P1 + P2 ) ;

end;



procedure DoSomething ( P1, P2, P3 ) ;
begin


end;

Glados 20. Aug 2017 21:53

AW: Klassenfunktion identisch zur "normalen Funktion"
 
Der Aufruf von DoSomething in TMyClass.DoSomething() und die zweite DoSomething müssten anders aussehen, damit das klappt.
Denn sonst greift DoSomething in TMyClass.DoSomething() immer nur auf sich selber zu.

himitsu 20. Aug 2017 22:08

AW: Klassenfunktion identisch zur "normalen Funktion"
 
Zitat:

Zitat von bernhard_LA (Beitrag 1379079)
kann ich bereits vergebene Funktionsnamen auch nochmal inner einer Klasse verwenden,

Ja?

Ausprobieren?

Wo ist das Problem?




Namespace beachten, bei gleicher Signatur.

Und vorallem die Reihenfolge ... Was man nicht kennt, das kann auch nicht verwendet werden. :stupid:

jaenicke 21. Aug 2017 05:46

AW: Klassenfunktion identisch zur "normalen Funktion"
 
Der Aufruf ist zwar mit Unitname.Funktion (...) möglich, sprich mit dem von himitsu genannten Namespaces davor, aber es ist absolut schlechter Programmierstil. Denn es führt beim Leser zu unnötiger Verwirrung, wenn du selbst oder jemand anderes später dort etwas ändern möchte.

Da ist es sinnvoller einen leicht anderen Namen zu verwenden.

Warum brauchst du eigentlich so eine lose Funktion in der Unit? Kannst du nicht scglicht in der Klasse bleiben?

bernhard_LA 21. Aug 2017 09:47

AW: Klassenfunktion identisch zur "normalen Funktion"
 
habe mich für einen leicht unterschiedlichen Namen entschieden, der Code liest so so vermutlich dann besser


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:49 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