Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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()

{

}
Geschrieben

sorry: formfehler... oben wo die zitate ausseinander stehen gehören sie natürlich zusammen, also:

Cat(int xAge);

~Cat();

das gleiche gilt auch unten mit

Cat::~Cat()

{

}

Geschrieben

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

Geschrieben


#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=???

Geschrieben


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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...