Noch ne Frage zur Mehrfachvererbung!



  • Wollte demnächst mal wieder ein spiel programmieren und hab mir bereits ein paar Gedanken zum Design gemacht:
    Es soll (u.A.) ein "drawable-Interface" und ein "selectable-Interface" geben, so dass Objekte von diesen ableiten können! Jetzt gibt es natürlich Objekte die sowohl gezeichnet werden müssen als auch selektriert werden können!
    Also so in etwa:
    [cpp]class Drawable
    {
    virtual void draw() = 0;
    ...
    };

    class Selectable
    {
    bool selected
    void select();
    inline bool isSelected() {return selected;}
    ...
    };

    class Panzer : public Drawable, public Selectable
    {
    void fahr();
    void schieß();
    void draw();
    ...
    };

    Ist MFV hier schlecht?



  • Hallo

    die Struktur ist imo schlecht. Denn alle auswählbaren Objekte sollten auch zeichenbare Objekte sein, oder? Also sollte Selectable von Drawable abgeleitet werden.

    bis bald
    akari



  • akari schrieb:

    die Struktur ist imo schlecht. Denn alle auswählbaren Objekte sollten auch zeichenbare Objekte sein, oder?

    Find ich nicht. Was hat Selectable mit Drawable zu tun, nicht wirklich viel oder? Imo ist die Trennung von Input und Output durchaus sinnvoll.
    Ansonsten, auf const-correctness achten. ➡ isSelected()



  • Mehrfachvererbung ist in deinem Fall i.O. Wüsste nicht, was dagegen spricht.



  • Hallo

    groovemaster schrieb:

    akari schrieb:

    die Struktur ist imo schlecht. Denn alle auswählbaren Objekte sollten auch zeichenbare Objekte sein, oder?

    Find ich nicht. Was hat Selectable mit Drawable zu tun, nicht wirklich viel oder? Imo ist die Trennung von Input und Output durchaus sinnvoll.
    Ansonsten, auf const-correctness achten. ➡ isSelected()

    Wie soll man den ein Objekt auswählen, das nicht einmal angezeigt werden kann?

    bis bald
    akari



  • akari schrieb:

    Wie soll man den ein Objekt auswählen, das nicht einmal angezeigt werden kann?

    Du kennst die Domain nicht. Es waere durchaus denkbar, dass man einen Selectable Bereich anlegt, der zB ueber ein Bild+einen Schriftzug+einen Button geht. dieser ist nicht sichtbar, aber dennoch anklickbar.

    der hinweis, dass Selectable uU von Drawable abgeleitet sein sollte ist gut und wichtig, aber wenn der OP meint, dass nicht jedes Drawable Objekt Selectable ist, dann wird das schon seinen grund haben 😉


Anmelden zum Antworten