kostenloser Webspace werbefrei: lima-city


ordentliche Erklärung für "delete" gesucht

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    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;
    }
    "
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    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.
  4. Autor dieses Themas

    reimann

    Kostenloser Webspace von reimann

    reimann hat kostenlosen Webspace.

    Achso danke:thumb:
    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++.
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!