Mit einer Unterklasse auf Attribute von einer Oberklasse zugreifen



  • [Closed]

    Hey Leute 🙂

    Ich habe eine Aufgabe :

    ref class hund {
    
    private:
    
    	Int32 gewicht;
    
    	Int32 farbe;
    };
    
    ref class kleinerHund : hund {
    
    private:
    
    	Int32 groesse;
    };
    

    Die aufgabenstellung lautet:

    Die Klasse "kleinerHund" soll auf das Attribut "gewicht" der Klasse "hund" zugreifen können. Welche Möglichkeiten kennen Sie, diesen Zugriff zu ermöglichen? Bewerten Sie diese Möglichkeiten bitte auch. Achten Sie dabei besonders auf die Datenkapselung.

    Ein Tipp: Sie sollten mindestens drei verschiedene Varianten nennen kkönnen. Zwei hängen direkt mit der Vereinbarung des Attributs zusammen, die dritte dagegen nicht.

    So und ich glaube 2 davon zu haben 😃

    Das wäre Variante 1: Man setzt das Attribut auf öffentlich (public).
    Variante 2: Man setzt das Attribut auf geschützt (protectet).

    Mir fehlt aber die dritte Variante und ich komme einfach nihct drauf.

    Im vor raus auf jedenfall schonmal dankeschön 🙂



  • Getter/Setter Methoden bzw. C++/CLI Properties. Heisst du machst im Hund public Methoden, mit denen du auf die Attribute zugreifen kannst. C++/CLI Properties sind dabei nichts anderes als syntactic sugar für eben genau solche Methoden.

    ref class hund {
    public:
        // Getter/Setter-Variante
        Int32 getGewicht() { return gewicht; }
        void setGewicht(Int32 v) { gewicht = v; }
        // Property
        property Int32 Gewicht
        {
            Int32 get() { return gewicht; }
            void set(Int32 v) { gewicht = v; }
        }
    private:
    
        Int32 gewicht;
    
        Int32 farbe;
    };
    // Benutzung:
    hund doge;
    doge.Gewicht = 42; // Setzen via Property
    doge.setGewicht(42); // via Setter
    Int32 dogesGewicht = doge.Gewicht; // Lesen via Property
    // dogesGewicht = doge.getGewicht(); // Lesen via Getter
    

    Also: Getter/Setter sind (vermutlich) die 3. Variante. Properties stellen eine Variation derselben dar und erlauben die gleiche Syntax wie im direkten Umgang mit Attributen, wobei allerdings Getter/Setter aufgerufen werden.



  • Ich danke dir viel mals.

    Ich hatte mir überlegt ob es propertys sein könnten War mir aber nicht sicher. Doch jetzt wo du es so gut erklärst leuchtet es ein 😃

    Danke 🙂


Log in to reply