Konstruktor | Destruktor
-
Biiiiiiiiiiiiiite, ich weiss nicht mehr weiter )-:
Ich checke einfach nie etwas richtig in dem Buch von Stroustrup, der hat einen so
beschissenen Schreibstil!!!!!!!!!Sagt mir bitte was ein Konstruktor ist und was ein Destruktor ist.
Bitte formuliert gut eure Sätze, ich habe schon in Volkards und in Shades Tutorial geguckt,
doch die beiden sind nicht so fähig sich gut in Worte zu fassen
sondern haben so einen gammler Schreib- und Erzählstil drauf wie ich jetzt eben!!! (das soll nicht beleidigend sein @Volkard und Shade)
-
also formal isser wohl nur ne methode, die aufgerufen wird, wenn ein objekt stirbt. dabei ist "stribt" ein wenig unklar. auto-objekte bei blockende, lokale static-objekte bei pprogrammende in umgekehrter reihenfolge der konstruktion und wer den operator delete aufruft, ruft implizit nen dtor auf.
hilft nix, gell?
naja, und was macht man damit? nuja, zuerstmal bescheidsagen lassen, wann der dtor aufgerufen wird. und man setzt auto-objekte in blöcke, dann kann man sich bescheidsagen lassen, wann ein block verlassen wird. man schreibt gerne close in nen destruktor, damit es auch ja bei jedem return oder throw von alleine apssiert. und manchmal mag man damit schlicht speicher freigeben. rekursiv kann ein dtor eines elements ne ganze liste löschen. er kann aufgerufen werden, ohne daß der speicher des objekts freigegeben wird.
hilft auch nix, gell?
schade.
-
half nix
-
konstrukter = öffnen ^^
destruktor = aufräumer ^^
-
Stell Dir das vor wie auf einer Baustelle für Objekte:
einfach:
Klassen sind nichts anderes als Baupläne/abstrahierende Beschreibungen für konkrete Objekte.
Die Konstruktoren (Konstruktor-Funktionen) der Klasse sind die Baumaschinen, die gemäß den den Bauplänen diese konkreten Objekte erstellen/erzeugen.
Der Destruktor (Destruktor-Funktion) der Klasse ist die Baumaschine, die diese konkreten Objekte abreisst/vernichtet/plattmacht/in den Müll wirft.
etwas komplizierter:
Klasse: Beschreibung einer Menge von Objekten mit gleichen Attributen, Operationen, Beziehungen und gleicher Bedeutung.
Als Konstruktor wird die Funktion einer Klasse bezeichnet, die denselben Bezeichner wie die Klasse trägt. Konstruktoren werden bei der Instanziierung einer Klasse aufgerufen und können Parameter entgegennehmen.
Der Destruktor ist eine Methode, die aufgerufen wird, wenn ein Objekt zerstört beziehungsweise freigegeben wird. Typischerweise erledigt ein Destruktor Verwaltungsaufgaben, die notwendig sind, um die Existenz eines Objektes sauber zu beenden.
noch komplizierter:
ganz kompliziert, weil mathematisch vereinfachend:
Wenn A die Menge der Atome und S die Menge der S-Ausdrücke ist, kann die Menge S wie folgt rekursiv definiert werden:
1. A Ì S
2. a, b Î S Þ (a . b) Î S
3. andere S-Ausdrücke gibt es nichtFür spezielle S-Ausdrücke benutzt man die Listenschreibweise:
4. ( ) º nil
5. s1, ... sn Î S Þ (s1 s2 ... sn) º (s1 . (s2 . ( ... (sn-1 . (sn . nil)) ... )))Ein Konstruktor C mit Parametern p1, ... pn wird dann beispielsweise als (C p1 ... pn) dargestellt.
siehe http://www.programmtransformation.de/chap01.htm
-
Hallo,
schon den FAQ-Beitrag zum Thema gelesen?