Zum Inhalt springen

Wozu Destruktor??


noli88

Empfohlene Beiträge

Also, ich lerne mir im Moment C++. ich weis zwar das ich nen Destruktor brauch um Speicher frei zu schaufeln, aber wozu dann dieser Aufbau BSP ausm buch:

Cat(int xAge);

~Cat();

Wozu "zerstöre ich es gleich nachdem ich es "aufbaue"? wenn ich es aufbauen würde, es verwende, und später wieder zerstöre, OK, aber so??

und noch eins-... wozu dann dieser komische Aufbau:

Cat::~Cat()

{

}
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Das erste Beispiel dürfte aus der Deklaration der Klasse "Cat" sein, in der sowohl der Konstruktor (mit einem int als Argument) als auch der Destruktor deklariert werden. Im zweiten Beispiel ist der Destruktor der Klasse Cat leer. Poste doch mal das komplette Beispiel, dann wirds übersichtlicher.

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen


#include <iostream>

using namespace std;

#include <conio.h>


class Cat

{

    public: 

        Cat(int xAge);

        ~Cat();

        int GetAge() {return itsAge;}

        void SetAge(int age);

        void Meow();

    private:

        int itsAge;

};


Cat::Cat(int xAge)

{

    itsAge=xAge;

};


Cat::~Cat()

{}




void Cat::SetAge(int age)

{

    itsAge=age;

}


void Cat::Meow()

{

    cout << "Miau.\n";

}


int main()

{

    Cat Ivo(5);

    Ivo.Meow();

    cout << "Ivo is ne Katze die " << Ivo.GetAge() << " Jahre alt is.\n";

    Ivo.Meow();

    Ivo.SetAge(7);

    cout << "Jetzt is Ivo " << Ivo.GetAge() << " Jahre alt is.\n";

    getch();

    return 0;

}

wieso schaff ich es nicht das der text auch hier eingeschoben wird, zwecks Übersicht=???

Link zu diesem Kommentar
Auf anderen Seiten teilen


public:
Cat(int xAge);
~Cat();
int GetAge() {return itsAge;}
void SetAge(int age);
void Meow();
private:
int itsAge;
[/PHP]

Das ist nur die Liste der Deklarationen, sprich welche Methoden und Membervariablen die Klasse besitzt.

[PHP]
Cat(int xAge);
~Cat();

Obenstehende Zeilen werden nicht ausgeführt. Sie lassen den Compiler nur wissen ob eine Methode oder Variable in einer Klasse vorhanden ist, und mit welchem Typ.


Cat::~Cat()
{
}
[/PHP]

Bedeutet dass beim Aufrufs des Destruktors keine benutzerspezifischen Aufgaben zu erledigen sind. Es wird also nur von der C++ bzw. Systemspeicherverwaltung der Speicher der Instanz freigegeben. Du koenntest hier aber auch eigenen Code ausfuehren lassen, bevor das Objekt zerstoert wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...