Kreaturen Liste erstellen
Verfasst: 14.08.2018, 22:43
Hallo Zusammen.
Ich stelle grad etwas erstaunt fest, dass sich eine std:list anscheinen ja doch ohne Probleme mit Instanzen einer Klasse füllen lässt.
Bislang dachte ich immer, man könne in einem vector oder list keine tatsächlichen Klassen-Objekte speichern, sondern müsse den Weg über den Heap mittels Pointer gehen.
Jetzt frage ich mich - da ja beides zu funktionieren scheint - weshalb ich den Weg mittels Zeiger gehen sollte, wenn ich die Kreaturen auch direkt in die Liste speichern kann.
In den Anfängen von C und C++ lernt man doch, dass es unumgänglich ist, mit new oder malloc zu arbeiten, wenn man Objekte zur Laufzeit erzeugen will.
Ganz offensichtlich lassen sich ja aber mit beiden Methoden zur Laufzeit neue Kreatur-Instanzen erzeugen - quasi dank der stl.
Übersehe ich da grad etwas entscheidendes? Zur welchen Methode würdet ihr mir raten? Stimmt denn die Überlegung, dass ich das Risiko eines Memory-Leaks ausschliessen kann, sofern ich kein "new" oder "malloc" einsetze und stattdessen die Instanzen direkt in einem vector oder einer list speichere?
Gruss starcow
Ich stelle grad etwas erstaunt fest, dass sich eine std:list anscheinen ja doch ohne Probleme mit Instanzen einer Klasse füllen lässt.
Code: Alles auswählen
std::list<Kreatur> kreaturenListe; // Die Kreaturen-Liste
Kreatur kreatur; // Eine Kreatur-Instanz
kreaturenListe.push_back(kreatur);
Code: Alles auswählen
std::list<Kreatur*> kreaturZeigerListe; // Die Kreaturen-Liste
Kreatur* kreaturZeiger = new Kreatur; // Eine neue Kreatur-Instanz auf dem Heap
kreaturZeigerListe.push_back(kreaturZeiger);
In den Anfängen von C und C++ lernt man doch, dass es unumgänglich ist, mit new oder malloc zu arbeiten, wenn man Objekte zur Laufzeit erzeugen will.
Ganz offensichtlich lassen sich ja aber mit beiden Methoden zur Laufzeit neue Kreatur-Instanzen erzeugen - quasi dank der stl.
Übersehe ich da grad etwas entscheidendes? Zur welchen Methode würdet ihr mir raten? Stimmt denn die Überlegung, dass ich das Risiko eines Memory-Leaks ausschliessen kann, sofern ich kein "new" oder "malloc" einsetze und stattdessen die Instanzen direkt in einem vector oder einer list speichere?
Gruss starcow