Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Notation (in einer Funktion) (https://www.delphipraxis.net/113647-notation-einer-funktion.html)

Sierra 12. Mai 2008 11:37


Notation (in einer Funktion)
 
Hi!
Ich habe mal etwas Quelltext aus unserem Informatikkurs überflogen, weil bald eine Prüfung ansteht. Nun bin ich dabei auf eine Notation gestoßen, die ich nicht ganz einordnen kann.

Delphi-Quellcode:
function Suchbaum.linkerSuchbaum:Suchbaum;
begin
  result:=Suchbaum(linkerBaum);
end;
Dabei weiß ich nicht genau, was das "Suchbaum(linkerBaum) bewirkt bzw. müsste es eine Art Typecasting (ohne "as") sein. Dabei bin ich mir aber nicht ganz sicher. Dazum muss man sagen, dass "linkerBaum" vom Typ "Binaerbaum" der Klasse mBinaerbaum ist.
Vielen Dank für die Antwort.

vsilverlord 12. Mai 2008 11:39

Re: Notation (in einer Funktion)
 
ja gut, suchbaum stinkt nach einer eigenen Klasse. Kannst du die bitte auch posten? :roll:

mkinzler 12. Mai 2008 11:39

Re: Notation (in einer Funktion)
 
Es handelt sich um einen harten Cast, bei der Verwendung von as um einen Softcast

Sierra 12. Mai 2008 12:02

Re: Notation (in einer Funktion)
 
Vielen Dank.
So etwas in der Art dachte ich mir schon.

SirThornberry 12. Mai 2008 12:12

Re: Notation (in einer Funktion)
 
Wenn das wirklich aus eurem Informatikkurs ist solltet ihr euren Lehrer mal den offiziellen Delphistyleguide empfehlen. Wenn ihr mit Delphi programmiert so solltet ihr das auch richtig beigebracht bekommen um später im Berufsleben nicht schief angeschaut zu werden.
Typen sollten demnäch mit einem großen T beginnen (also auch neu definierte Klassen)
Delphi-Quellcode:
function TSuchbaum.linkerSuchbaum:TSuchbaum;
Zudem ist es in der Praxis so das Funktion auch ohne Parameter mit Klammern versehen werden. (in anderen Sprachen bringt sogar der Compiler eine Fehlermeldung wenn dem nicht der Fall ist)
Delphi-Quellcode:
function TSuchbaum.linkerSuchbaum(): TSuchbaum;
Das vorrangestellte T hat den Vorteil das man schneller sieht ob es sich um einen Cast handelt oder einen Funktionsaufruf.
Bsp.:
Delphi-Quellcode:
Irgendwas(Variable); //Variante1: nicht eingehaltender Styleguide
TIrgendswas(Variable); //Variante2: Styleguide beachtet
Bei Variante2 sieht man schneller das es sich um einen Cast handelt als bei Variante1.
Ich glaub wenn mein Kind mit so etwas aus der Schule käme würde ich dem Lehrer einen Besuch abstatten. Es kann ja nicht sein das die Kinder in der Schule das ganze falsch lernen und somit dann später wieder umlernen müssen nur weil der Lehrer sich nicht an Richtlinien hält.

Christian Seehase 12. Mai 2008 12:27

Re: Notation (in einer Funktion)
 
Moin Zusammen,

dazu hätte ich noch etwas nachzutragen.
Bei einem harten Typecast sollte man sich auch ganz sicher sein, dass dieser zulässig ist, da der Compiler hier nicht meckern würde. Im anderen Falle, mit AS, würde man schon beim Compilieren einen Fehler gemeldet bekommen, wenn der Cast ungültig ist.


Zitat:

Zitat von Sierra
Dazum muss man sagen, dass "linkerBaum" vom Typ "Binaerbaum" der Klasse mBinaerbaum ist.

:gruebel:

Was ist jetzt der Typ "Binaerbaum", und was die Klasse mBinaerbaum?
Zumal Klassen ja auch Typen sind.


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