![]() |
Re: unsichtbare Klassen
1. Entweder einfach im Implementation Teil deklararieren.
2. Oder als private Sub-Klasse definieren 3. Auslagern und diese Unit Unit-privat im Implementation Teil einbinden Diese Möglichkeiten sehe ich ... |
Re: unsichtbare Klassen
Zitat:
Zitat:
Ich zeig am besten mal den Code, wie er bisher war:
Delphi-Quellcode:
Wie genau müsste ich den dann umschreiben?
unit FIFO;
interface type TNode = class private FNext: TNode; FObject: TObject; constructor Create(AObject: TObject); destructor Destroy; override; end; TFIFO = class private FFront: TNode; FRear: TNode; public constructor Create; destructor Destroy; override; procedure Clear; function Dequeue: TObject; procedure Enqueue(AObject: TObject); end; implementation constructor TNode.Create(AObject: TObject); begin inherited Create; FObject := AObject; FNext := nil; end; destructor TNode.Destroy; begin FObject.Free; inherited; end; constructor TFIFO.Create; begin inherited; FFront := nil; FRear := nil; end; destructor TFIFO.Destroy; begin Clear; inherited; end; procedure TFIFO.Clear; begin while FFront <> nil do Dequeue.Free; end; function TFIFO.Dequeue; begin if FFront <> nil then begin Result := FFront.FObject; FFront := FFront.FNext; end else Result := nil; end; procedure TFIFO.Enqueue(AObject: TObject); begin if FRear <> nil then begin FRear.FNext := TNode.Create(AObject); FRear := FRear.FNext; end else begin FRear := TNode.Create(AObject); FFront := FRear; end; end; end. |
Re: unsichtbare Klassen
Zitat:
Zitat:
Delphi-Quellcode:
/EDIT: Programmierst du wirklich mit TABs? Das gehört meiner Meinung nach verboten...
unit FIFO;
interface type TFIFO = class private Type TNode = class private FNext: TNode; FObject: TObject; public constructor Create(AObject: TObject); destructor Destroy; override; end; private FFront: TNode; FRear: TNode; public constructor Create; destructor Destroy; override; procedure Clear; function Dequeue: TObject; procedure Enqueue(AObject: TObject); end; implementation constructor TNode.Create(AObject: TObject); begin inherited Create; FObject := AObject; FNext := nil; end; destructor TNode.Destroy; begin FObject.Free; inherited; end; constructor TFIFO.Create; begin inherited; FFront := nil; FRear := nil; end; destructor TFIFO.Destroy; begin Clear; inherited; end; procedure TFIFO.Clear; begin while FFront <> nil do Dequeue.Free; end; function TFIFO.Dequeue; begin if FFront <> nil then begin Result := FFront.FObject; FFront := FFront.FNext; end else Result := nil; end; procedure TFIFO.Enqueue(AObject: TObject); begin if FRear <> nil then begin FRear.FNext := TNode.Create(AObject); FRear := FRear.FNext; end else begin FRear := TNode.Create(AObject); FFront := FRear; end; end; end. /EDIT2: Den Constructor und Desctructor kannst du nicht einfach in eine geringere Sichtbarkeit verschieben... |
Re: unsichtbare Klassen
Zitat:
Zitat:
![]() Aber falls du einen guten Grund dagegen hast, würd ich den gerne hören (falls es hier zu OT wird, dann evtl per PM oder im verlinkten Thread. |
Re: unsichtbare Klassen
Zitat:
Zitat:
![]() |
Re: unsichtbare Klassen
Zitat:
|
Re: unsichtbare Klassen
Zitat:
Zitat:
|
Re: unsichtbare Klassen
Ja, Tabs sind echt schön. :mrgreen: Trotzdem Zwischenfrage : wozu konkret dient das zweimalige "override" ? :shock:
|
Re: unsichtbare Klassen
Zitat:
greetz Mike |
Re: unsichtbare Klassen
Ja, was soll denn überschrieben werden ? :shock: Da ist doch nichts vorher.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:38 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