Destructor aufrufen ?
-
Wie? Ohne Instanz der Klasse?
-
class_name = pointer auf klasse
-
es gibt keine pointer auf klassen.
-
template<typename T> void call_destructor(T* p) { p->~T(); }
-
delete class_name;
-
CarstenJ schrieb:
Ja, mein Beitrag war Quark....
wie schon so oft ....
-
Ist ja schön, dass es dich auch noch gibt, du großer, mutiger Verfechter der sinnvollen Beiträge. Ich fürchtete schon, dich hättense eingefangen...
-
Konnt mich beim Betrachten deiner Beiträge einfach nicht verkneifen.
Naja mit "Referenzen" wie Links kennste dich ja aus.
-
dot schrieb:
delete class_name;
Das geht aber nur, wenn das Objekt vorher mit new angelegt wurde.
-
stimmt, aber der konstruktor is auch nur gedacht dann aufgerufen zu werden, wenn die klasse terminiert wird ( also bei delete oder wenn sie ihren gültigkeitsbereich verlässt ).
mich würd interessieren, warum er den konstruktor einfach so aufrufen will.
wenns darum geht, speicher in der klasse freizugeben, dann würd ich das in eine eigene memberfunktion ( free() oder sowas in der art ) auslagern und die dann vom konstruktor aus aufrufen...
-
gibt es eine funktion, der ich eine klasse übergeben kann,
Nein.
Aus
welche den constructor aufruft ?
würde ich schließen, dass du ne Art Factory haben willst? aber da es in wirklichkeit um den Destruktor geht scheinst du irgendwas nicht verstanden zu haben.
Der Destruktor zerstört ein Objekt. Eine Klasse hingegen ist eine abstrakte Beschreibung, wie Objekte aussehen (auch wenn in einigen Sprachen Klassen auch Objekte sind).
Wenn du kein Objekt hast, kannst du es auch nicht zerstören.