AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Objekte in Klassen: Was wird alles zerstört?
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte in Klassen: Was wird alles zerstört?

Ein Thema von malo · begonnen am 27. Nov 2005 · letzter Beitrag vom 27. Nov 2005
Antwort Antwort
Seite 3 von 3     123   
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#21

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 14:44
Korrigiert. Ich sagte ja, "Wenn ich keinen Bockmist gebaut habe...". Ich kenn mich doch...

Das mit dem Before/AfterDestruction bringt eigentlich nur Supersonderfällen etwas. Ich habs noch nie benötigt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#22

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 14:54
Zitat von alzaimar:
Tut mir leid, ich halte Vieles von dem, was hier gepostet wurde, für überflüssig und irreführend. Jede Klasse sollte sich 'um seinen eigenen Kram' kümmern, und zwar so (eigentlich ganz einfach):

Delphi-Quellcode:
type TKlasseA = class
    a: integer; //irgend ein Feld, ist ja egal, was es genau ist
  end;
  TKlasseB = class
    KlasseA: TKlasseA;
  Public
    Constructor Create;
    Destructor Destroy; Override;
    Property ZugriffAufA : TKlasseA Read KlasseA;
  end;
  TSuperKlasse = class
    KlasseB: TKlasseB;
  Public
    Destructor Destroy; Override;
    Property ZugriffAufB : TKlasseB Read KlasseB;
  end;

Constructor TKlasseB.Create;
Begin
  Inherited Create; // unnötig, schadet aber nicht
  KlasseA := TKlasseA.Create; // Was ich erschaffe ...
End;

Destructor TKlasseB.Destroy; // <--hier war ein kleiner Rechtschreibfehler
Begin
  FreeAndNil (KlasseA); // ... zerstöre ich auch wieder ...
  Inherited;
End;

Constructor TSuperKlasse.Create;
Begin
  Inherited Create; // unnötig, schadet aber nicht
  KlasseB := TKlasseB.Create; // Was ich erschaffe ...
End;

Destructor TSuperKlasse.Destroy;
Begin
  FreeAndNil (KlasseB); // ... zerstöre ich auch wieder ...
  Inherited;
End;
Vorausgesetzt, ich hab hier keinen Bockmist gemacht, klappt das Immer. Ohne BeforeDestruction oder AfterDestruction. Wenn man das als eiserne Regel befolgt ("Was ich erschaffe, zerstöre ich auch") und dann noch Resourcenschutzblöcke (Try..Finally) verwendet, baut auch sichere, also stabile und exploitresistente(re) Programme.
Wenn Du schon properties einführst dann solltest Du vielleicht die Variablen KlasseB und KlasseA als privat deklarieren.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#23

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 15:17
Na gut. Sind jetzt Alle zufrieden?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#24

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 15:26
Es ist eigentlich Konvention, Feldbezeichner mit einem großen F zu beginnen...
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#25

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 18:11
Mit mir kann man es ja machen. .
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 20:01 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