Globale Liste / Statische Liste



  • Hi,

    wie bekomme ich es hin, dass ich auf eine Liste unabhängig von Objekten zugreifen kann.
    D.h. ich habe eine Klasse mit einer Liste. In der Main erstelle ich ein Objekt X und schreibe Sachen von dort aus in die Liste. Doch jetzt möchte ich von einer anderen Klasse aus auch auf die Liste zugreifen, jedoch muss ich das Objekt X wiederverwenden.

    Ich habe es nun so gemacht, dass ich den Pointer von Objekt X übergebe. Jedoch hätte ich es gerne "Objekt unabhängig" quasi Statisch.

    Lösungsansatz :
    Mein Lösungsansatz ist gewesen, dass ich die Liste static initialisiere wodurch eigentlich das Problem gelöst sein müsste. Zumindest mit einer static integer Variable hat es geklappt.

    #ifndef LISTBSP_H
    #define LISTBSP_H
    #include "list"
    class ListBsp
    {
    public:
    
        ListBsp();
    
        static std::list<int> getTest();
        static void setTest(const std::list<int> &value);
    
    private:
    
        static std::list<int *>Test;
        static int test1;
    };
    
    #endif // LISTBSP_H
    


  • Naja, entweder du benutzt globale Variablen (wie in deinem Beispiel) oder du übergibst die Liste.



  • Wenn statisch, dann aber auch die Referenz auf die Liste zurückgeben, und nicht die Kopie. Aber ich denke mal, dass das ein Flüchtigkeitsfehler war.


Anmelden zum Antworten