Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> using namespace std; class cKlasse { public: int x; cKlasse(); ~cKlasse(); }; cKlasse::cKlasse() { cout << "Konstruktor wurde aufgerufen!\n"; x = 100; } cKlasse::~cKlasse() { cout << "Destruktor wurde aufgerufen!\n"; } int main() { cKlasse Nummer1, Nummer2; cout << Nummer1.x << endl; Nummer1.~cKlasse(); cout << Nummer1.x << endl; cin.sync();cin.get(); return 0; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
class Foo { ... }; Foo *a = new Foo(); cout << a->membervariable; delete a; //das sollte ordentlich knallen^^ cout <<a->membervariable; |
Der Zugriff auf ein Objekt, nachdem dessen Destruktor ausgeführt wurde, resultiert in undefiniertem Verhalten. Ebenso das zweimalige Ausführen des Destruktors.Zitat von »"xxendlessxx"«
Wenn ich eine Klasse erstelle, von der Klasse z.B. zwei Instanzen erstelle und dann den Destruktor einer Instanz aufrufe, wieso kann ich dann noch immer die Member dieser Instanz aufrufen ? Ist es nicht so das der Destruktor die Instanz löscht / zerstört.
Weil es falsch ist. Es heisst Standard.Zitat von »"xxendlessxx"«
edit: lol warum wird st4ndart als ****** angezeigt wird D
Zitat von »"xxendlessxx"«
edit: lol warum wird st4ndart als ****** angezeigt wird D
Zitat von »"Nexus"«
Weil es falsch ist. Es heisst Standard.
Zitat von »"xxendlessxx"«
Zitat von »"xxendlessxx"«
edit: lol warum wird st4ndart als ****** angezeigt wird DZitat von »"Nexus"«
Weil es falsch ist. Es heisst Standard.
Ja aber warum zeigt das forum das als * an
@Topic: ok jetzt hab ichs verstanden. Danke an alle.
Weil man diese Funktionalität in manchen Fällen braucht, wie beim erwähnten Placement New.Zitat von »"Jonathan_Klein"«
oO, wieso erlaubt der Compiler eigentlich, den Destruktor manuell aufzurufen?
Werbeanzeige