Konstruktor für Klasse mit Liste als Element?



  • Hallo,

    habe gleich noch ne Frage.
    Wie muss denn der Konstruktor für folgende Klasse aussehen,
    die eine Liste als Element enthält?

    private:
    string name;
    int gewicht;
    int zahl;
    list<Item*> inventar;

    Ich bekomms einfach nicht hin, dachte an sowas wie

    Player::Player ( string n, int mw, int cw ) : name (n), gewicht (g), zahl (z), list<Item*> inventar

    aber das funzt einfach nicht, habe schon viel zeit damit verschwendet und für euch ist das bestimmt ein Kinderspiel 🙂

    Wäre sehr nett wenn ihr mir weiterhelfen könntet.

    Grüße
    Jens



  • So

    Player::Player ( string n, int mw, int cw ) : name (n), gewicht (g), zahl (z), inventar()

    oder so

    Player::Player ( string n, int mw, int cw ) : name (n), gewicht (g), zahl (z)

    Gruß!



  • Ja, wenn du eh nur den Standardkonstruktor von list aufrufen willst, dann brauchst das Inventar überhaupt nicht in die Initialisierungsliste reinzupacken. Der wird nämlich standardmäßig aufgerufen. Würdest du im Player-Konstruktor ein Inventar übergeben, dann wäre das was Anderes. Aber so ist es überflüssig.



  • Sepp34 schrieb:

    ...
    Wie muss denn der Konstruktor für folgende Klasse aussehen,
    die eine Liste als Element enthält?...

    😕
    Das kommt doch ganz darauf an, was er tun soll - soll die Liste anfänglich ...

    • ...leer sein ? -> nix zu tun
    • ...mit einer bestimmten Anzahl neuer Objekte gefüllt werden ? -> Schleife mit new + push_back. (Warum dann nicht besser eine list<Item> ?
    • ... übergebenen Zeigern gefüllt werden ? -> Schleife mit push_back()
    • ...

    So pauschal kann man das nicht beantworten.

    Gruß,

    Simon2.



  • Hallo,

    und vielen Dank.
    das Problem hat sich über Nacht schon erledigt 😉

    Nochmals ein dickes Lob für diese Forum hier!!!

    Danke
    Grüße
    Jens


Anmelden zum Antworten