000
11.07.2011, 14:08 Uhr
TOSHMAX
|
Folgendes Problem: Ich brauche eine Klasse und eine globale Liste, in der alle Objekte dieser Klasse enthalten sind. Auf die Liste muss von verschiedenen Übersetzungseinheiten aus zugegriffen werden.
Wenn ich die Liste statisch in einer Funktion bzw. extern global deklariere, kann es natürlich vorkommen (wenn auch selten), dass ein Objekt auf die Liste zugreift bevor ihr Konstruktor oder nachdem ihr Destruktor aufgerufen wurde.
Ich habe bereits viel gelesen und versucht, aber das einzige das Funktionieren könnte, erzeugt ein Speicherleck:
C++: |
std::list<my_class> get_list() { std::list<my_class>* list = new std::list<my_class>; return list; }
|
Was haltet ihr hiervon? Es ist zwar nicht schön, aber für mein Vorhaben immer noch besser als ohne Liste. Und so etwas sollte den meisten Betriebssystemen heutzutage nicht mehr allzu viel schaden, oder?
Vielen Dank für jede Meinung zu diesem Thema! |