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.