Klassen
-
Hi,
muß eine Klasse eigentlich immer private besitzen oder reicht auch mal nur public ?
Wie kommt man zu seinem Objekt und was bringt in private unter ?
Stehen dort immer nur Variablen oder auch mal was andres ?
Wie würde beispielsweise eine einfache Klasse aussehen
um etwas in eine Datei zuschreiben ?gruß,
cmos
-
Original erstellt von <cmos>:
muß eine Klasse eigentlich immer private besitzen oder reicht auch mal nur public ?ne klasse besitzt weder private noch public. aber es kann natuerlich klassen geben welche alle methoden und variablen als public hat -> die frage ist nur wie weit sowas sinnvoll ist.
Wie kommt man zu seinem Objekt und was bringt in private unter ?
Zu einem Objekt kommt man, indem man es instanziiert.
Private bringt alles das unter was auch public unter bringt.Stehen dort immer nur Variablen oder auch mal was andres ?
auch mal was anderes
Wie würde beispielsweise eine einfache Klasse aussehen
um etwas in eine Datei zuschreiben ?etwa so wie ofstream wenn man die templates wegnimmt.
-
Eine Klasse kann auch nur public besitzen, es kommt ja auf DEIN Design an.
struct
ist auch nur eine Klasse mit nur public-Attributen.
In einer Klasse stehen normalerweise private-Attribute (Variablen) über die fremde Klassen nur über public-Mothoden (Funktionen) zugreifen können/dürfen. In private dürfen/sollten auch Methoden stehen, die fremde Klassen nicht sehen dürfen. Z.B. weil sie nur interne Aufgaben erledigen. Public-Methoden dagegen sind Schnittstellen für fremde User.
Wenn du mehr wissen willst, solltest du dir ein paar C++Bücher kaufen, eines für den Anfänger und dann eines, das intensiver in OO eingeht.
[ Dieser Beitrag wurde am 07.07.2003 um 11:32 Uhr von Artchi editiert. ]
-
Hi,
danke erstmal.
Habe schon ein gutes Buch.
Ich dachte ich bekomme hier ein praktischeres Beispiel als im
Buch. Nur Variablen in einer Klasse ändern ist ja auch nicht
die wucht.
-
Kleines Beispiel:
class MyLogfile { ofstream logfile; void schreibeKopf(); void schreibeFuss(); MyLogfile(); public: MyLogfile(const std::string & Name); Schreibe(const std::string & Inhalt); }; void MyLogfile::schreibeKopf() { logfile<<"************ Beginn einer neuen Session *********** \n\n"; } void MyLogfile::schreibeFuss() { logfile<<"************ Ende einer Session *********** \n\n"; } MyLogfile(const std::string & Name) { logfile.open(Name.c_str()); if(!logfile) throw runtime_error("Datei konnte nicht geöffnet werden"); } Schreibe(const std::string & Inhalt) { Zeit uhrzeit; // Wird von irgendwo her organisiert die Zeit logfile<<uhrzeit<< " " << Inhalt<<"\n"; }
-
man kann public oder private nicht besitzen, nur öffentliche (public) oder private Funktionen (dazu wir auch oft gesagt: Methoden/Elementfunktionen) oder Variablen (= Elementvariablen).
Ein gutes Beispiel, für eine Klasse, "die wo nur public hat" (
)
class HTTP_Interface { public: virtual void open_connection () = 0; virtual void close_connection () = 0; virtual void exec_command (Command &) = 0; };
Es gibt sogar Klassen wie NullType und EmptyType, die wo nur nix haben:
class NullType {};Aber das ist ein anderes Kapitel