Archiv verlassen und diese Seite im Standarddesign anzeigen : Konstruktor/Destruktor
Sir.Lydex
2005-04-10, 15:06:05
Hallo,
ich schreibe morgen eine Klausur, in dem auch dieses Kram vorkommen soll. Jedoch verstehe ich einfach nicht den Sinn von Konstruktoren/Destr.. Kann mir das mal jemand erklären, so dass selbst ich das verstehe? ;) Wäre super, Danke.
MfG
Der Konstruktor wird aufgerufen, wenn eine Instanz des Objekts erstellt wird, der Destruktor, wenn die Instanz gelöscht wird.
-huha
Aqualon
2005-04-10, 15:12:29
Ich kenn das folgendermaßen:
Ein Konstruktor wird ausgeführt, wenn du ein Objekt einer Klasse erzeugst. Darin kann man z.B. Variablen Defaultwerte zuweisen oder die Werte übergebener Variablen in Variablen des Objektes reinschreiben.
Destruktor ist das andere Ende, dieser wird ausgeführt, wenn ein Objekt aus dem Speicher entfernt wird.
Bei Wikipedia (http://de.wikipedia.org/wiki/Destruktor) beziehen sie es auf Variablen.
Aqua
Sir.Lydex
2005-04-10, 15:27:19
Das habe wir als Beispiel bekommen. Ich check da irgendwie den Sinn nicht:
//bspl_Konstruktor
#include <iostream>
#include <conio>
class test {
private: int abc;
public: test(int=9); //Konstruktor
~test(); //Destruktor
int ausgabe()
{
return(abc);
}
};
test::test(int i) //konstruktor
{
cout<<"Konstruktor"<<endl;
if (i>12)
abc=12;
else
abc=i;
}
test::~test()
{
cout<<"Destruktor"<<endl;
}
int main()
{
test x(7);
test y;
test z(13);
cout<<" "<<x.ausgabe()<<endl;
cout<<" "<<y.ausgabe()<<endl;
cout<<" "<<z.ausgabe()<<endl;
getch();
return 0;
}
Ich verzweifele hier noch ...
Das Beispiel hat keinen weiteren Sinn.
Konstruktor und Destruktor sind in erster Linie ganz normale Methoden die an bestimmten Stellen automatisch aufgerufen werden.
Normalerweise benutzt man sie um die Klasseninvariante sicherzustellen, Ressourcen zu verwalten oder einfach als praktische abkürzende Schreibweise.
HansDampf
2005-04-10, 21:31:37
Der Konstruktor wird aufgerufen, wenn eine Instanz des Objekts erstellt wird, der Destruktor, wenn die Instanz gelöscht wird.
-huha
Ich denke du meinst Instanz der Klasse (das ist dann nämlich das Objekt)
Der Konstruktor ist eine spezielle Member-Funktion einer Klasse und wird automatisch bei der Erzeugung eines Objekts dieser Klasse aufgerufen. Sein Zweck besteht hauptsächlich in der Durchführung von Initialisierungen (bsw. Initialisierung von Datenkomponenten, Speicherallokation).
Der Destruktor ist das Gegenstück zum Konstruktor. Sein Zweck besteht dann eben im Rückgängigmachen von Initialisierungen (bsw. Freigabe von Speicher, der durch den Konstruktor allokiert wurde). Er wird automatisch am Ende der Lebensdauer eines Objekts, unmittelbar vor der Freigabe des Speicherplatzes für das Objekt aufgerufen.
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.