AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verbesserungen?

Ein Thema von tn249 · begonnen am 28. Jan 2005 · letzter Beitrag vom 28. Jan 2005
Antwort Antwort
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#1

Verbesserungen?

  Alt 28. Jan 2005, 14:11
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
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:14
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.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:17
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
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:19
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
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#5

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:22
Zitat von Chakotay1308:
Ansonsten würde ich nur noch vorschlagen deine Klasse von TObject abzuleiten
Wenn du nicht explizit was anderes angibst ist eine Klasse doch immer von TObject abgeleitet, oder?
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:29
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
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#7

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:31
Jap. Aber inherited nicht vergessen.
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Verbesserungen?

  Alt 28. Jan 2005, 14:32
habsch
danke nochma

<- aber wirklich
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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