Thema: Delphi Binärer Baum mit Klasse

Einzelnen Beitrag anzeigen

SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#5

AW: Binärer Baum mit Klasse

  Alt 10. Dez 2015, 13:13
Ich scheiter gerade an den Klassenmethoden.

Also ich muss ja z.B. class procedure Einfuegen(eingabe: String) als Klassenmethode defenieren (da es ja nur einmal vorkommen darf) oder?
Ist dir der Unterschied zwischen Klasse und Objekt klar? Klassen sind quasi die Baupläne, Objekte die Realisierung (Instanzen der Klasse).
Klassenmethoden operieren auf der Klasse und haben daher nur Zugriff auf allgemeine Dinge und andere Klassenmethoden und Klassenvariablen. Aber nicht auf normale Felder einer Objektinstanz, auf denen normale Methoden operieren.
Eine Methode wie "Einfügen" ist mit ziemlicher Sicherheit keine Klassenmethode, sondern eine normale, da du dir sonst die Möglichkeit versperrst, mehrere Objekte (Instanzen) dieser Klasse zu haben, die unterschiedliche Werte eingefügt bekommen können.

Deine aktuelle Deklaration von TNodeTest scheint mir also ziemlich falsch. Mach mal überall das "class" Präfix weg.
Übrigens:

Delphi-Quellcode:
// statt:
      class var NodeI: Integer;
      class var wAendern: Integer;
      class var PWurzelNode: TNodeTest;
      class var PStandNode: TNodeTest;
      class var PParentNode: TNodeTest;
// geht auch einfach:
      class var
        NodeI: Integer;
        wAendern: Integer;
        PWurzelNode: TNodeTest;
        PStandNode: TNodeTest;
        PParentNode: TNodeTest;

// und statt
if PWurzelNode <> nil then
// kann man auch schreiben
if Assigned(PWurzelNode) then

// ist absolut gleichwertig, Assigned() testet auf <> nil, nur damit du es mal gesehen hast
  Mit Zitat antworten Zitat