Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verbesserungen? (https://www.delphipraxis.net/39081-verbesserungen.html)

tn249 28. Jan 2005 13:11


Verbesserungen?
 
hi,

hab grad meine erste eigene klasse geschrieben.

könnt ihr die mal nach logischen fehlern durchsuchen(ich bin mir nicht sicher ob ich das klassen-system schon verstanden hab)

Code:
unit tn_POP3;

interface

uses
  IdPOP3;

type
  TtnPOP3 = class
    private
      IdPOP3: TIdPOP3;
    public
      constructor Create;
      destructor Free;
    end;

implementation

constructor TtnPOP3.Create;
begin
  IdPOP3 := TidPOP3.Create(nil);
end;

destructor TtnPOP3.Free;
begin
  IdPOP3.Free;
end;

end.
würde mich sehr über kommentare freuen

MfG
tn249

sakura 28. Jan 2005 13:14

Re: Verbesserungen?
 
Was ist jetzt besonderes daran? Was willst Du erreichen?

Btw, Free ist bereits durch TObject definiert und sollte nicht neu definiert werden. Freigabe von Klassen-Objekten geschieht im Destructor Destroy.

...:cat:...

CalganX 28. Jan 2005 13:17

Re: Verbesserungen?
 
Hi,
den Destruktor niemals mit Free benennen. Wenn du eine Klasse von TObject ableitest (was man normalerweise macht) ist Free eine eigene Methode, die den Destruktor aufruft. Und wenn dein Destruktor selber Free heißt, kann es sicherlich zu Problemen führen. Nimm lieber Destroy das ist Standard.

Ansonsten würde ich nur noch vorschlagen deine Klasse von TObject abzuleiten, denn dort sind alle wichtigen Dinge, die der Destruktur bzw. der Konstruktor erledigt bereits integriert. Dann musst du aber im Konstruktor und im Destruktor noch das Wörtchen [oh]inherited[/oh] einfügen um den Konstruktor von TObject bzw. der Elternklasse aufzurufen.

Mehr ist mir im Moment nicht aufgefallen. ;)

Chris

tn249 28. Jan 2005 13:19

Re: Verbesserungen?
 
genau so ne sache wie mit free wollte ich vermeiden (ich weiß doch, dass mir immer so was passiert)

danke für eure antworten :!:

MfG
tn249

Treffnix 28. Jan 2005 13:22

Re: Verbesserungen?
 
Zitat:

Zitat von Chakotay1308
Ansonsten würde ich nur noch vorschlagen deine Klasse von TObject abzuleiten

:gruebel: Wenn du nicht explizit was anderes angibst ist eine Klasse doch immer von TObject abgeleitet, oder?

tn249 28. Jan 2005 13:29

Re: Verbesserungen?
 
hab jetzt den destructor von free zu destroy umbenannt und in destroy und create ein inherited eingefügt

daraufhin bekomme ich ne warnung

Code:
Method 'destroy' hides virtual method of base type 'TObject'
kann ich das einfach mit override beseitigen?

MfG
tn249

Treffnix 28. Jan 2005 13:31

Re: Verbesserungen?
 
Jap. Aber inherited nicht vergessen.

tn249 28. Jan 2005 13:32

Re: Verbesserungen?
 
habsch
danke nochma

:dp: <- aber wirklich


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