Veröffentlicht 6. Dezember 200420 j 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() { }
6. Dezember 200420 j 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() { }
6. Dezember 200420 j 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
6. Dezember 200420 j #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=???
7. Dezember 200420 j wieso schaff ich es nicht das der text auch hier eingeschoben wird, zwecks Übersicht=???Weil du QUOTE statt CODE benutzt. Oder zuviele Fragezeichen
7. Dezember 200420 j 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 Konto oder melde dich an, um einen Kommentar zu schreiben.