![]() |
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:
würde mich sehr über kommentare freuen
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. MfG tn249 |
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:... |
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 |
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 |
Re: Verbesserungen?
Zitat:
|
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:
kann ich das einfach mit override beseitigen?
Method 'destroy' hides virtual method of base type 'TObject'
MfG tn249 |
Re: Verbesserungen?
Jap. Aber inherited nicht vergessen.
|
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