Datenstruktur gesucht



  • Wie soll bitte eine map mit einem unique_ptr als Key Sinn machen? Die Frage ist ernst gemeint, also erklär mir das mal.

    Und hallo, der Typ ist blutiger Anfänger, was soll er mit Polymorphismus Polymorphie bzw. überhaupt einer eigenen Artikel-Klasse?

    ----

    struct Eintrag
    {
        std::string Artikelname;
        unsigned int Menge;
        unsigned int Preis; // In Cent
    };
    
    std::vector<Eintrag> Einkaufsliste;
    

    Tadaa



  • hustbaer schrieb:

    Wie soll bitte eine map mit einem unique_ptr als Key Sinn machen? Die Frage ist ernst gemeint, also erklär mir das mal.

    Ja, da fehlt wohl nen expliziter Compare.

    hustbaer schrieb:

    Und hallo, der Typ ist blutiger Anfänger, was soll er mit Polymorphismus bzw. überhaupt einer eigenen Artikel-Klasse?

    Dass man Polymorphismus uU nicht braucht, habe ich doch schon geschrieben. Eine eigene Artikel-Klasse macht trotzdem mehr Sinn als dein Vorschlag. Überleg doch mal, wie das benutzt wird. So muss man jedes mal manuell durch den vector gehen, nach dem passenden Namen suchen und die Menge erhöhen. Die map erledigt das für einen.



  • Polymorphie?
    Aber klar.
    Wurstbrot erbt von Supermarkt



  • cooky451 schrieb:

    hustbaer schrieb:

    Und hallo, der Typ ist blutiger Anfänger, was soll er mit Polymorphismus bzw. überhaupt einer eigenen Artikel-Klasse?

    Dass man Polymorphismus uU nicht braucht, habe ich doch schon geschrieben. Eine eigene Artikel-Klasse macht trotzdem mehr Sinn als dein Vorschlag. Überleg doch mal, wie das benutzt wird. So muss man jedes mal manuell durch den vector gehen, nach dem passenden Namen suchen und die Menge erhöhen. Die map erledigt das für einen.

    Ich glaube nicht dass der OP das will.



  • Wozu ist denn so ein Einkaufskorb sonst gut?



  • ...



  • Das mit dem Wurstbrot macht ja sinn. Wobei ich das Brot eher von der Wurst ableiten würde, weil man dann per Type-Slicing die Wurst vom Brot runterbekommt. Bei Butter würde ich das so nicht machen, schließlich bleibt immer ein bisschen Butter am Brot kleben, daher eher ein Member.
    Ich finde auch auch, dass das Wurstbrot vom Supermarkt ableitet ist kein wirkliches OOP, es müsste andersherum sein. Schließlich nimmt kaum jemand dem Brot den Supermarkt weg, es ist ja andersherum!

    Also:

    class Wurst {
    };
    
    class Brot {
    };
    
    class Wurstbrot : public Brot, public Wurst {
    public:
      Butter butter_; 
    };    
    
    class Supermarkt : public Wurstbrot, public Wurst
    {
    };
    


  • ...



  • Ein Supermarkt ist ein Wurstbrot?!



  • Ja, denn das hier sollte funktionieren:

    void klaue_Wurst_BeiAdresse( Wurst* wurst )
    {
       cout << *wurst << " wird geklaut!";
       delete wurst;
    }
    
    int main()
    {
       Supermarkt penny_;
       klaue_Wurst_BeiAdresse( &penny_ );
    }
    

    Aus nachvollziehbaren Gründen muss es auch lauten:

    class Mensch : public Wurstbrot
    {
    };
    

    Denn der Mensch isst ein Wurstbrot.


Anmelden zum Antworten