Hilfe bei Klassen!!


  • Administrator

    maxi96 schrieb:

    wie greife ich auf "lebt" und "geschlecht" zu ?

    Von innerhalb der Klasse ganze normal.
    Von Aussen zum Beispiel über Setter und Getter.

    Grüssli



  • okey dann muss ich halt warten bis mein vater von der reise zurück ist!

    danke aber für deine antworten dravere!



  • Wobei noch zu beachten ist, setter so häufig wie möglich zu vermeinden. Man soll ruhig Attribut-Werte der Klasse von außen ändern können, aber nur implizit bei bestimmten Methoden. Durch setter die Attribute gezielt zu ändern ist weniger schön und bricht die Kapselung etwas.



  • Klass0r schrieb:

    Wobei noch zu beachten ist, setter so häufig wie möglich zu vermeinden. Man soll ruhig Attribut-Werte der Klasse von außen ändern können, aber nur implizit bei bestimmten Methoden. Durch setter die Attribute gezielt zu ändern ist weniger schön und bricht die Kapselung etwas.

    😕 - Was redest du da?

    @maxi96:
    Ganz einfach:

    #include <iostream>
    
    struct gebstruct
    {
        short jahr;
        short monat;
        short tag;
    };
    
    class klasse
    {
    public:
        std::string name;
        gebstruct geb ;
        std::string wohnort;
    
        // holen
        char get_geschlecht () const { return geschlecht; }
        bool get_lebt () const { return lebt; }
    
        //schreiben
        void set_geschlecht ( char g ) { geschlecht = g; }
        void set_lebt ( bool l ) { lebt = l; }
    private:
        char geschlecht;
        bool lebt;
    };
    
    int main(int argc, char** argv)
    {
        short eingabe;
        while(eingabe!=1)
        {
            std::cout << "drücke '1' !\n";
            std::cin >> eingabe;
        }
        klasse Objekt;
        Objekt.name="maximilian";
        Objekt.wohnort = "wien";
        Objekt.geb.jahr = 1996;
        Objekt.geb.monat = 10;
        Objekt.geb.tag = 10;
        Objekt.set_geschlecht ( 'm' ); //funktionsaufrufe
        Objekt.set_lebt ( true );
    }
    

  • Administrator

    maxi96 schrieb:

    okey dann muss ich halt warten bis mein vater von der reise zurück ist!

    Wieso denn nun das?

    Klass0r schrieb:

    Wobei noch zu beachten ist, setter so häufig wie möglich zu vermeinden. Man soll ruhig Attribut-Werte der Klasse von außen ändern können, aber nur implizit bei bestimmten Methoden. Durch setter die Attribute gezielt zu ändern ist weniger schön und bricht die Kapselung etwas.

    Was ist dass denn für einen Quatsch?

    Grüssli



  • drakon schrieb:

    Klass0r schrieb:

    Wobei noch zu beachten ist, setter so häufig wie möglich zu vermeinden. Man soll ruhig Attribut-Werte der Klasse von außen ändern können, aber nur implizit bei bestimmten Methoden. Durch setter die Attribute gezielt zu ändern ist weniger schön und bricht die Kapselung etwas.

    😕 - Was redest du da?

    @maxi96:
    Ganz einfach:

    #include <iostream>
    
    struct gebstruct
    {
        short jahr;
        short monat;
        short tag;
    };
    
    class klasse
    {
    public:
        std::string name;
        gebstruct geb ;
        std::string wohnort;
    
        // holen
        char get_geschlecht () const { return geschlecht; }
        bool get_lebt () const { return lebt; }
    
        //schreiben
        void set_geschlecht ( char g ) { geschlecht = g; }
        void set_lebt ( bool l ) { lebt = l; }
    private:
        char geschlecht;
        bool lebt;
    };
    
    int main(int argc, char** argv)
    {
        short eingabe;
        while(eingabe!=1)
        {
            std::cout << "drücke '1' !\n";
            std::cin >> eingabe;
        }
        klasse Objekt;
        Objekt.name="maximilian";
        Objekt.wohnort = "wien";
        Objekt.geb.jahr = 1996;
        Objekt.geb.monat = 10;
        Objekt.geb.tag = 10;
        Objekt.set_geschlecht ( 'm' ); //funktionsaufrufe
        Objekt.set_lebt ( true );
    }
    

    HAHAHAHA 😃
    danke schön drakon!!!!!!

    Dravere hat irgendwas von setter und getter geredet. da bin ich schon irgendwie verrückt geworden weil ich nicht weiss was das ist.

    danke nochmal!! sehr sehr gut erklert!! BIN sehr fröhllich!!!

    freundliche grüsse maximialian



  • np.

    btw:
    get -> holen
    set -> setzen

    Wenn man weiss, was die Wörter bedeuten, dann wird einem das Konzept auch gleich viel klarer, nicht? 😉


  • Administrator

    maxi96 schrieb:

    Dravere hat irgendwas von setter und getter geredet. da bin ich schon irgendwie verrückt geworden weil ich nicht weiss was das ist.

    1. Wieso fragst du dann nicht nach?
    2. Wieso suchst du nicth auf Wikipedia?
    3. Wieso liest du es nicht in deinem Buch?
    4. Wieso verwendest du keine Suchmaschine?

    Es bringt nämlich nichts dir zu helfen, wenn du dir nicht selbst helfen willst. Du weisst wahrscheinlich jetzt immer noch nicht was ein Setter oder Getter ist, dabei sind das wichtige Grundlagen ... aber naja ... Die Leute wollen nichts selber machen, sondern nur faul alles serviert bekommen ...

    Grüssli



  • Ahhhaa danke drakon!!

    habe nach getter in google gesucht aber dann wurde es noch schwieriger 😞 😞
    in meinem buch ist das nicht so gut beschriben worden

    und ich bin nicht faul!!

    danke nochmal drakon!


  • Administrator

    maxi96 schrieb:

    habe nach getter in google gesucht aber dann wurde es noch schwieriger 😞 😞

    2. Eintrag:
    http://de.wikipedia.org/wiki/Getter

    Dann liest man oben:

    Dieser Artikel beschäftigt sich mit dem chemisch reaktiven Material. Für die Abfragemethode in der Programmierung siehe Zugriffsfunktion.

    Uh, Zugriffsfunktion ... das tönt doch irgendwie in deine Richtung ... mal anschauen:
    http://de.wikipedia.org/wiki/Zugriffsfunktion

    Uh, gefunden ... war das schwer!
    Wenn du Informationen nicht selber finden kannst, dann bist du sehr aufgeschmissen in der Informatik.

    maxi96 schrieb:

    in meinem buch ist das nicht so gut beschriben worden

    Welches Buch verwendest du denn?

    maxi96 schrieb:

    und ich bin nicht faul!!

    Da habe ich so leichte Zweifel, ich kann mich aber natürlich auch irren.

    Grüssli



  • @Dravere:
    Objekt.geb.jahr = 1996;


  • Administrator

    DStefan schrieb:

    @Dravere:
    Objekt.geb.jahr = 1996;

    Ja, schon klar. Das weiss man sogar ohne diesen Code. Aber ich probiere positiv zu denken, es müssen schliesslich nicht alle Klischees stimmen. Ich glaube daher auch eher daran, dass es an Faulheit liegt und nicht an Arroganz 😉

    Die Hoffnung stirbt eben zuletzt 😉

    Grüssli


Anmelden zum Antworten