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


Anmelden zum Antworten