ordentliche Erklärung für "delete" gesucht
lima-city → Forum → Programmiersprachen → C/C++ und D
aufruf
brauche
dank
klasse speicher
knallen
lernen
objekt
pointer
problem
sache
sinnlos daten
speichern
speicherplatz
-
Also: Ich musste notgedrungenerweise C++ lernen, obwohl mir Java alles bietet was ich brauche und da ist auch schon das Problem verankert.
Ich habe Java weitestgehend gelernt und musste jetzt bei C++ zwar vieles nicht lernen, aber dafür entzieht sich vieles meinem Verständnis, so auch die ganze Sache mit Stack und Heap.
Also um Speicherplatz wieder freizugeben verwendet man "delete VARNAME;"
Allerdings wenn ich jetzt delete aufrufe und das den Destruktor aufruft, löscht das dann auch die Variablen des Objektes?
"
class A {
int x;
A::A() { }
A::~A() { }
}
"
Wird dann x als Variable auf dem Stack abgelegt und gelöscht sobald auch das Objekt der Klasse A gelöscht wird oder muss man int im Destruktor löschen?
"
A::~A() {
delete x;
}
" -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das delete brauchst du in deinem Fall nicht, da damit dynamisch allozierter Speicher freigeben wird. Wenn du ein Objekt deiner Klasse erstellst, enthält dieses immer deine int Variable. Wenn dein Objekt wieder gelöscht wird, dann wird audh die Variable gelöscht.
Das delete im Destruktor benötigst du nur, wenn du im Konstruktor (oder einer anderen Memberfunktion der Klasse) Speicher dynamisch mit new allokiert hast, da in diesem Fall nur der Pointer auf die Variable direkt zum Objekt gehört, nicht jedoch die Variable selbst. -
Achso danke
Ich hasse diese Speicherverwaltung, aber ich will ja nicht sinnlos Daten auf den Speicher knallen und für das Gerät (Classpad 300) gibt es kein JRE sondern man muss das mit nem speziellen sdk machen und zwar in c++. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage