Konstruktoren und Destruktoren

Hallo Leute,

ich bin gerade dabei mich in die Welt des Programmierens einzulernen. Und dabei habe ich eine Frage:

Wozu brauche ich Konstruktoren und Destruktoren, wenn der Compiler mir diese dinge schon bereitstellt???

Ich hoffe ihr könnt mir weiterhelfen.

bye

maddog

der compiler stellt dir diese dinger zwar hin zum gebrauch,
aber AKTIVIEREN musst DU sie dann schon selber.
ungefaehr so, als wenn du ein fahrrad hast, das
an der wand lehnt (das stellt dir der compiler hin),
um mit dem ding dann auch zu fahren, musst du es dann
nehmen (aktivieren).
ach ja, der destructor! du laesst das fahrrad ja nach
dem gebrauch nicht einfach auf der strasse liegen,
du stellst es wieder ordentlich ab, du ‚destructierst‘ es, du wirst es wieder los.
sinngemaess hat damit das os denn wieder etwas mehr luft.
hoffe dir sind die unterschiede klar.
digi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich bin gerade dabei mich in die Welt des Programmierens
einzulernen. Und dabei habe ich eine Frage:

Wozu brauche ich Konstruktoren und Destruktoren, wenn der
Compiler mir diese dinge schon bereitstellt???

Der Compiler stellt nur die Standardkonstruktoren (und Destrukturen) bereit. Wenn man nur die Standardkonstruktoren benötigt, kann man auf die eigenen Konstruktoren völlig verzichten. Eigene Konstruktoren bieten aber darüber hinaus zum Beispiel die Möglichkeit, Membervariablen zu initalisieren, Arrays mit Werten zu belegen, Speicherplatz für lineare Listen zu allocieren (beim Standardkonstruktor wird hier nur der Speicherplatz für den (Wurzel)Zeiger allociert).
Der (eigene)Destruktor dient in der Regel nur dazu (selbst)allocierten Speicher wieder freizugeben.

Gruß Frank

um bei dem beispiel von frank zu bleiben - und natuerlich
bei dem fahrrad.

ein standard-fahrrad hat einen bestimmten standard-sattel bspw.
damit kannst du natuerlich ohne weiteres das fahrrad fahren.
jetzt gefaellt dir der sattel nicht, du moechtest einen
western-sattel haben. den western-satteln kannst du bei dem
aktivieren des fahrrades (wenn du es also von der wand nimmst,
‚konstruierst‘) jeweils individual darauf setzen. das ist
dann deine eigene initialisierung der klasse beim aktivieren.
du erweiterst/modifizierst also das, was dir von hause aus
als standard angeboten wird.
‚destructor‘= wenn du das fahrrad nicht mehr brauchst,
dann kannst du den sattel ja mit dem fahhrad gemeinsam einfach
wieder abstellen, in der hoffnung, dass niemand das ding klaut.
das ist der standard-fall, weil du das ‚object‘ (in dem fall
das fahrrad) loswerden willst ohne irgendeine erinnerung daran.