Klassen
-
Hallo
Erstmal vielen Dank für die Hilfe auf meine letzte Frage. Ich muss allerdings gestehen ich hänge schon wieder fest. Jetzt geht es um Klassen. Folgender Quelltext macht mir Probleme.Class Cat { public: int GetAge(); void Set Age(int age); void Meow(); private: int its age; }
Dazu habe ich 2 Fragen. Was ist der Unterschied zwischen pubil und private. ich hab das irgendwie so verstanden die anderren Objekte sind immer ansprechbar oder so. Und was bringt ein Konstruktor und DeKonstruktor. Entweder bin ixh zu blöde dafür oder das is in meinem Buch einfach dämlich erklärt.
-
private:
Hier kannst Du dinge ablegen die der Anwender Deiner Klasse nicht sehen darf bzw. nicht verwenden darf. Bei Deiner Katze z.B. das alter.
private: int age;
Durch die "get" und "set" Methode kannst Du garantieren das eine Katze nicht
-10 Jahre ist.Cat.age = -10; // der Compiler verbietet das
Der Anwender Deiner Klasse muss also:
Cat.set_Age(-10);
aufrufen. Und hier kann eine Abfrage drinn sein die garantiert das die Katze nicht -10 Jahre alt ist.
Kurzum:
Alles was privat ist hat keinen anderen zu Interessieren, was Public ist darf jeder wissen und verwenden. Das Du in xyz wohnst darf jeder wissen, aber was Du mit Deiner Freundin nachts machst ist privat und da darf keiner rann
Konstruktoren und Destruktoren werden beim erzeugen eines Objektes und bei der Zerstörung aufgerufen. (Ausnahme: Der Destruktor wird Manuell aufgerufen).
Stell Dir eine Klasse vor die eine Logarbeit für Dich Übernehmen soll.
Der Name des Logfiles ist vorgegeben. Du kannst das Öffnen der Datei (Header schreiben etc.) im Konstruktor machen.Dann verwendest Du die Klasse mylog.ausgabe("Irgendwas");
Im Destruktor kanns Du dann die Datei wieder sauber zu machen, noch was ans ende schreiben etc. Der Destruktor garantiert dies auch bei einer Exception.
Du kannst also vorbereitungen treffen. Speicher Allokieren, Datenbaken Öffnen, Steuereinheiten auf standardwerte Setzen etc. Im Destruktor kannst Du dies dann wieder aufräumen.
-
Ich würde sagen, das währ was für dich:
http://www.volkard.de/vcppkold/inhalt.html
-
[cpp]
Class Cat
{
public:
int GetAge();
void Set Age(int age);
void Meow();
private:
int its age;
}
[/cpp]Ich kann mir nicht vorstellen, dass das geht, wenn dann its_age
mfg
Glamdring
-
im buch steht int itsAge();
habs ja auch gelesen ^^
-
Versuch es mal hier:
http://home.arcor.de/cpp_kurs/cpp/le09/k3_01_01.htm